我想要统计每门课程的合格率,但出来的结果不是我需要的,有谁可以指导一下吗?
#include
#define M 4
#define N 5
// course[m][N]存放该课程的合格率
int main()
{
float score[M], add[N] = { 0 }, k[M] = { 0 }, t, a[N] = { 0 };
int i, j;
for (i = 0; i < N; i++)
{
add[i] = 0;
printf("输入第%d个学生4门课程的成绩\n", i + 1);
for (j = 0; j < M; j++)
{
scanf_s("%f", &score[j]);
add[i] += score[j];
k[j] += score[j];
}
}
for (i = 0; i < N; i++)
printf("第%d个学生总分:%.1f、平均分:%.1f\n", i + 1, add[i], add[i] / M);
for (j = 0; j<M; j++)
for (i = 0; i<M - j; i++)
if (add[i]1])
{
t = add[i]; add[i] = add[i + 1]; add[i + 1] = t;
}
for (i = 0; i<N; i++)
printf("第%d名的平均分数为%.2f\n", i + 1, add[i] / M);
for (i = 0; i < M; i++)
printf("第%d门课的平均成绩:%.1f\n", i + 1, k[i] / N);
float course[4][N + 2] = { 0 };
//依次处理4门课程
for (i = 0; i < N; i++) {
int passed = 0;
for (j = 0; j < M; j++) {
if ( score[j]>= 60)
{
passed++;
}
course[i][N] = 100 * passed / N;
}
}
for (i = 0; i < 4; i++) {
printf("%d: Passed=%.2f\n", i + 1, course[i][N]);
}
}
```
你的add和k里存的东西都一样啊
你需要一个二维数组来存成绩,行里存的是同一个学生不同科目的成绩,列里存的是同一个科目不同学生的成绩,这样才对
否则全是一维数组,后面的数据不停的将前面的数据覆盖了,信息都没了呀