表头 | 语文 | 数学 | 英语 | |||
---|---|---|---|---|---|---|
学生1 | 0(i/j) | 1(j) | 2(j) | 3 (j) | 4(该学生总成绩) | 5(该学生平均) |
学生2 | 1(i) | |||||
学生3 | 2 (i) | |||||
- | 3(i) | |||||
- | n(学科总成绩) | / | / | |||
- | n+1(学科平均) | / | / |
我的代码:
#include
int main()
{
double a[100][5];int n;
printf("输入学生总数:");
scanf_s("%d", &n);
printf("请输入语数外成绩:\n");
for (int i = 0; i < n; i++)
{
printf("---第%d个的成绩---\n", i + 1);
for (int j = 0; j < 3; j++)
{
scanf_s("%lf", &a[i][j]);//将三科的成绩储存在数组a[i][j]中;
}
}
printf("学科总分和平均分为:");
for (int j = 0; j < 3; j++)
{
for (int i= 0; i < n; i++)
{
a[n][j] = a[n][j]+ a[i][j];//将学科总分储存在数组a[n][j]中;
a[n + 1][j] = (a[n ][j])/ n;//将学科平均分储存在数组a[n+1][j]中;
}
printf("%lf,%lf\n", a[n][j], a[n + 1][j]);
}
printf("该学生的总分和平均分为:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < 3; j++)
{
a[i][3] += a[i][j];//将学生总分储存在数组a[i][3]中;
a[i][4] = (a[i][3]) / 3;//将学生平均分储存在a[1][4]中;
}
printf("%lf,%lf\n", a[i][3], a[i][4]);
if (a[i][3] < a[i + 1][3])//从大到小输出学生的总成绩;
{
int temp = a[i + 1][3];
a[i + 1][3] = a[i][3];
a[i][3] = temp;
}
printf("%lf", a[i][3]);
}
}
出现的问题:第21行执行完后,总成绩并没有储存到数组中,后面也有相同的问题
数组a没有初始化
a[n][j] 里存了个随机数啊
a[n][j] = a[n][j]+ a[i][j];
a[n][j]一开始不是0,你直接做加法,加完肯定是乱码呀