#include<stdio.h>
int main()
{
float score[3][6];
int i, j;
printf("请输入学生a的四门成绩");
for (j = 0; j <= 3; j++)
{
scanf_s("%f",& score[0][j]);
} //这是二维数组的输入法,也就是逐行循环,不过还可以套上行循环,详见下一次作业整理
score[0][4] = score[0][0] + score[0][1] + score[0][2] + score[0][3];
score[0][5] = 0.25 * score[0][4];//比较原始人的输入法
printf("请输入学生b的四门成绩");
for (j = 0; j <= 3; j++)
{
scanf_s("%f",& score[1][j]);
}
score[1][4] = score[1][0] + score[1][1] + score[1][2] + score[1][3];
score[1][5] = 0.25 * score[1][4];
printf("请输入学生c的四门成绩");
for (j = 0; j <= 3; j++)
{
scanf_s("%f",& score[2][j]);
}
score[2][4] = score[2][0] + score[2][1] + score[2][2] + score[2][3];
score[2][5] = 0.25 * score[2][4];
for (i = 0; i < 3; i++)
{for (j = 0; j < 6; j++)
printf("%6.1f", score[i][j]);
printf("\n"); //这一句已经不在内循环了,而是属于外循环
}
return 0;
}
不过看看一些可以优化的地方
要看得懂宏定义的写法
eg:#define R 3(行)
#define C 4(列)
int a【R+2】【C+2】,i,j;//这里的R+2是长度
。。。。。。。
对于每个学生
for(i=0;i<R;i++) //i变化,说明是按行检索;时刻区分下标与长度
{a【i】【C】=0; //清零总分栏,C是下标,注意是在求和循环开始之前
for(j=0;j<C+2;j++) a[i][C]+=a[i][j]
a【i】【C+1】=a【i】【C】/C //括号里的C表示下标,最后一个表长度
。。。。。。。。
}