当前位置: 代码迷 >> C语言 >> [求助] 我自己写的
  详细解决方案

[求助] 我自己写的

热度:138   发布时间:2006-02-26 10:38:00.0
[求助] 我自己写的
#include <stdio.h>
main()
{ int M,N,i,j;
float score[10][10],sc[10][10],sum=0;
printf("inputs a numbers:\n");
scanf("%d%d",&M,&N);
printf("the stduents NO.=%d,the subjects NO.=%d",M,N);
printf("\n");
{for (i=0;i<M;i++)
for (j=0;j<N;j++)
scanf("%d",&scroe[i][j]);
}
{ for (i=0;i<M;i++)
for (j=0;j<N;j++)
sum+=score[i][j];
sc[5][j]=sum/N;
}
{ for (i=0;i<M;i++)
for (j=0;j<N;j++)
sum+=score[i][j];
sc[i]5]=sum/M;
}
printf("the students average =%.2f,the subjects average =%.2f",sc[5][j],sc[i][5]);
getch();
}
注:
{题目:求每个学生平均成绩和每门课的平均成绩;学生数为M个,有N门课程;(M=5,N=5)}

我不知道错在哪,每次运行时,结果却出现两个0.00,我实在是检查不出.
请各位学长们,帮我找一找,我在这先谢谢您们了!!

----------------解决方案--------------------------------------------------------
你应该定义一个学生名字,学号和成绩等等的结构体.你这样写当然不行啦.
----------------解决方案--------------------------------------------------------

有逻辑错误就调试。


----------------解决方案--------------------------------------------------------
以下是引用lidong3694在2006-2-26 10:38:00的发言:
#include <stdio.h>
main()
{ int M,N,i,j;
int score[10][10],sc[10][10],sum=0;
printf("inputs a numbers:\n");
scanf("%d%d",&M,&N);
printf("the stduents NO.=%d,the subjects NO.=%d",M,N);
printf("\n");
for (i=0;i<M;i++)
for (j=0;j<N;j++)
scanf("%d",&scroe[i][j]);

for (i=0;i<M;i++)
for (j=0;j<N;j++)
{sum+=score[i][j];
sc[5][j]=sum/N;
}
for (i=0;i<M;i++)
for (j=0;j<N;j++)
{sum+=score[i][j];
sc[i]5]=sum/M;
}
printf("the students average =%.2dthe subjects average =%.2d",sc[5][j],sc[i][5]);
getch();
}
注:
{题目:求每个学生平均成绩和每门课的平均成绩;学生数为M个,有N门课程;(M=5,N=5)}

我不知道错在哪,每次运行时,结果却出现两个0.00,我实在是检查不出.
请各位学长们,帮我找一找,我在这先谢谢您们了!!

你的程序内型不匹配啊,可能还有其他错误.


----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{ int M,N,i,j;
float score[10][10],sc[10][10],sum=0;
printf("inputs a numbers:\n");
scanf("%d%d",&M,&N);
printf("the stduents NO.=%d,the subjects NO.=%d",M,N);
printf("\n");
{for (i=0;i<M;i++)
for (j=0;j<N;j++)
scanf("%d",&scroe[i][j]);
}
{ for (i=0;i<M;i++)
for (j=0;j<N;j++)
sum+=score[i][j];
sc[5][j]=sum/N;
}
{ for (i=0;i<M;i++)
for (j=0;j<N;j++)
sum+=score[i][j];
sc[i]5]=sum/M;
}
printf("the students average =%.2f,the subjects average =%.2f",sc[5][j],sc[i][5]);
getch();
}
注:
{题目:求每个学生平均成绩和每门课的平均成绩;学生数为M个,有N门课程;(M=5,N=5)}


输入数据这里有问题,数据录入完毕后score里还全都是0呢
可能和楼上说的有关系?

[此贴子已经被作者于2006-2-26 12:11:17编辑过]


----------------解决方案--------------------------------------------------------
我测试了一下,scanf语句没有问题,可能是给sum赋值的时候,真不明白.
----------------解决方案--------------------------------------------------------

楼主这是我给你修改的程序,已经运行通过了,结果正确!

#include <stdio.h>
main()
{int m,n,i,j,k; /*m为学生数,n为课程成绩*/
int score[10][10],sc[10],subvera[10],sum=0;
printf("inputs a numbers:\n");
scanf("%d%d",&m,&n);
printf("the stduents NO.=%d,the subjects NO.=%d",m,n);
printf("\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&score[i][j]);
for (i=0;i<m;i++)
for (j=0;j<n;j++)
printf("%5d",score[i][j]);
printf("\n");
for (i=0;i<m;i++) /*一个学生的平均成绩*/
{for (j=0;j<n;j++)
sum+=score[i][j];
sc[i]=sum/n;
sum=0;
}
for (j=0;j<n;j++)
{for (i=0;i<m;i++) /*每门课程的平均成绩*/
sum+=score[i][j];
subvera[j]=sum/m;
sum=0;
}
for(j=0;j<m;j++)
printf("the %d students average =%d\n",j+1,sc[j]);
printf("\n");

for(j=0;j<n;j++)
printf("the %d subjects average =%d\n",j+1,subvera[j]);
getch();
}


----------------解决方案--------------------------------------------------------
非常感谢你们,第七楼的学长们改得很正确,我也测试过,正确,很感谢你们.
还有其他楼的学长们.
我觉得我主要出错是因为,没有定义的好,没理解好.
 谢谢你们了@!!
----------------解决方案--------------------------------------------------------
  相关解决方案