主频最高的e5:请高手帮我分析一这个程序怎么解决

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/03 06:17:54
#define n=6 / *学生数*/
#define m=5 /*课程数8/
main()
{int i,j;
float g,sum.ave;
for(i=1;i<=n;i++)
{sum=0;
for(j=1;j<=m;j++)
{scanf("%f",&g);sum=sum+g;}
ave=sum/m;
printf("No.%d ave=%5.2f ",i,ave);
}
}
程序的目的是输入6名学生5门课的成绩,分别统计出每个学生5门成绩的平均成绩输出。可是当我输入第7个学生的成绩的时候或者是输入第6个数据时候,程序仍然运行,如何改动才能让程序只按照给出的数据进行,而当超出i或者j的范围时立即终止。谢谢!

首先必须指出,程序中有几处错误:
注释有问题
define的使用有问题
以下给出更改后的参考程序:
#include <stdio.h>
#define N 6/*学生数*/
#define M 5/*课程数*/
void main(void)
{
int i,j;
float g,sum,ave;
for(i=1;i<=N;i++)
{
sum=0.0;
for(j=1;j<=M;j++)
{
scanf(\"%f\",&g);
sum=sum+g;
}
ave=sum/M;
printf(\"No.%d ave=%5.2f\\n\",i,ave);
}
}