从键盘输入n个学生的考试成绩(每个学生有m门课程),统计并输出各学生的总分和平均分,以及所有学生各科的总分和平均分,不知道哪里不对,缺了什么
int main()
{
int score[M][N],i,j;
int s[M]; //存放课程总分
int m,n;
printf("学生人数:");
scanf("%d",&m);
printf("课程数量:");
scanf("%d",&n);
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&score[i][j]);
}
}
printf("\n");
printf("学号\t语文\t数学\t英语\t总分\n");
for(i=0;i<m;i++){
printf("%2d\t",i+1); //知识输出学号,学号没有存储在数组中
s[i]=0;
for(j=0;j<n;j++){
printf("%3d\t",score[i][j]);
s[i]+=score[i][j]; //计算总分
}
printf("%d\n",s[i]);
}
return 0;
}
修改如下,供参考:
#include <stdio.h>
#include <stdlib.h>
#define M 50
#define N 10
int main()
{
int score[M][N], i, j;
int s[M], sum;//存放课程总分
int m, n;
printf("学生人数:");
scanf("%d", &m);
printf("课程数量:");
scanf("%d", &n);
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &score[i][j]);
}
}
printf("\n");
printf("学号\t");
for (i = 0; i < n; i++)
printf("课目%d\t", i + 1);
printf("总分\t平均分\n");
for (i = 0; i < m; i++) {
printf("%2d\t", i + 1); //输出学号,学号没有存储在数组中
s[i] = 0;
for (j = 0; j < n; j++) {
printf("%3d\t", score[i][j]);
s[i] += score[i][j]; //计算总分
}
printf("%d\t%.2f\n", s[i],(float)s[i]/n);
}
for (j = 0; j < n; j++) { //所有学生各科的总分和平均分
for (i = 0, sum = 0; i < m; i++) {
sum += score[i][j];
}
printf("\t%d %.2f", sum,(float)sum / m);
}
return 0;
}
请具体说明存在的疑问
#include <stdio.h>
#include <stdlib.h>
#define M 50
#define N 10
int main()
{
int score[M][N],i,j;
int s[50]={0}; //存放某个学生的课程总分
int sum=0,temp=1;
//int s[i]=0;
int m,n; //n个人,每人m科
printf("学生人数:");
scanf("%d",&n);
printf("课程数量:");
scanf("%d",&m);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
scanf("%d",&score[i][j]);
//printf("\n");
}
}
printf("\n");
printf("学号 语文 数学 英语 总分\n");
//输出单个学生的总分
for(i=0;i<n;i++)
{
printf("学号%d:",temp++); //学号
for(j=0;j<m;j++)
{
printf("%2d ",score[i][j]);
sum += score[i][j];
}
printf("%3d\n",sum); //总分
sum=0;
}
return 0;
}