C语言实验报告
11-2 求矩陣各行元素之和(15 分)
本題要求編寫程序,求一個給定的m×n矩陣各行元素之和。
#include <stdio.h>
#define M 10
#define N 10
int main()
{
??? int a[M][N];
??? int sum[M];
??? int m,n,i,j;
? ?
??? scanf("%d %d",&m,&n);
? ?
??? for(i=0;i<m;i++)
??? {
??????? sum[i]=0;
??????? for(j=0;j<n;j++)
??????? {
??????????? scanf("%d",&a[i][j]);
??????????? sum[i]+=a[i][j];
??????? }
??? }
? ?
??? for(i=0;i<m;i++)
??? {
??????? printf("%d\n",sum[i]);
??? }
??? return 0;
}
設計思路:通過兩個變量i,j來控制行和列,分別計算每一行元素和并存放在數組sum中。
12-1?統計大寫輔音字母(15?分)
英文輔音字母是除A、E、I、O、U以外的字母。本題要求編寫程序,統計給定字符串中大寫輔音字母的個數。
#include<stdio.h>
int main ()
{
int i,k,count;
char str[80];
count=0;
k=0;
while((str[k]=getchar())!='\n')
k++;
str[k]='\0';//添加字符串結束符號
for(i=0;str[i]!='\0';i++){
if((str[i]>='A')&&(str[i]<='Z')&&(str[i]!='A')&&(str[i]!='E')&&(str[i]!='I')&&(str[i]!='U')&&(str[i]!='O'))
count++;}//循環判斷
printf("%d\n",count);
return 0;
}
設計思路:通過循環判斷字符串每一個元素是否為大寫輔音字母,若不是則計數器count++,循環結束后count的值即為大寫輔音字母的個數。
13-1?計算兩數的和與差(10?分)
#include <stdio.h>void sum_diff( float op1, float op2, float *psum, float *pdiff );
int main()
{
??? float a, b, sum, diff;
??? scanf("%f %f", &a, &b);
??? sum_diff(a, b, &sum, &diff);
??? printf("The sum is %.2f\nThe diff is %.2f\n", sum, diff);
?? ?
??? return 0;
}
void sum_diff( float op1, float op2, float *psum, float *pdiff )
{
float add, sub;
*psum = op1+ op2;
*pdiff = op1- op2;
} 設計思路:通過兩個指針來實現函數內的計算結果在函數執行結束后也能在主函數內表示,分別表示兩個數的加減結果然后回到主函數調用兩個值。
14-3 字符串的連接(15 分)
本題要求實現一個函數,將兩個字符串連接起來。
#include <stdio.h> #include <string.h>#define MAXS 10char *str_cat( char *s, char *t );int main() {char *p;char str1[MAXS+MAXS] = {'\0'}, str2[MAXS] = {'\0'};scanf("%s%s", str1, str2);p = str_cat(str1, str2);printf("%s\n%s\n", p, str1);return 0; } char *str_cat( char *s, char *t ){
??? while(*s!=0)
?????? s++;
??? while(*t!=0){
??????? *s=*t;
??????? s++;
??????? t++;
??? }
??? *s='\0';
??? return s;
}
設計思路:通過兩個循環實現講str2的字符逐個加入到str1的末尾并且在循環結束后添加字符串結束符號。
15-6 按等級統計學生成績(20 分)
本題要求實現一個根據學生成績設置其等級,并統計不及格人數的簡單函數。
#include <stdio.h> #define MAXN 10struct student{int num;char name[20];int score;char grade; };int set_grade( struct student *p, int n );int main() { struct student stu[MAXN], *ptr;int n, i, count;ptr = stu;scanf("%d\n", &n);for(i = 0; i < n; i++){scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);} count = set_grade(ptr, n);printf("The count for failed (<60): %d\n", count);printf("The grades:\n"); for(i = 0; i < n; i++)printf("%d %s %c\n", stu[i].num, stu[i].name, stu[i].grade);return 0; }int set_grade( struct student *p, int n )
{
?int i,cnt=0;
?for(i=0;i<n;i++)
?{
??if(p->score>=85)p->grade='A';
??if(p->score>=70&&p->score<85)p->grade='B';
??if(p->score>=60&&p->score<70)p->grade='C';
??if(p->score>=0&&p->score<60)
??{
???p->grade='D';
???cnt++;
??}
??p++;
?}
?return cnt;
} 設計思路:通過對結構體數組的遍歷實現對每一個元素排等級(grade),并且通過計數器cnt判斷等級D的元素數量。
?
轉載于:https://www.cnblogs.com/Huangjingtao/p/8371185.html
總結
- 上一篇: 谢廖沙的参军经历有什么特点
- 下一篇: java模拟post请求,HttpURL