请问我这个程序哪里出问题了。。输出很怪
你那个for循环进不去吧,n=0,i<n
for循环没有错,错在计算平均成绩你用浮点数除以整型数,强制类型转换一下就行了
你把int m=0改成float m=0.0试一下。
ever=(float)m/n;
错误原因:
printf("output everage=%d",evr)中的%d改成%f,%d是输出int型,%f是输出float型
建议:将数组a和m改成float型,成绩是有小数的,m如果不改成float型,m/n得到的结果只会有整数,小数被去掉了
改正后:
int i,n=0;
float m=0;
float a[n];
float evr;
printf("请输入该组的人数n:");
scanf("%d",&n);
printf("请输入该数组成绩:");
for(i=0;i<n;i++){
scanf("%f",&a[i]);
}
for(i=0;i<n;i++){
m=m+a[i];
}
evr=m/n;
printf("output everage=%0.2f",evr);
int i,n=0;
float m=0;
float evr;
printf("请输入该组的人数n:");
scanf("%d",&n);
float *p= new float[n]; //这里动态申请数组大小。。
printf("请输入该数组成绩:");
for(i=0;i<n;i++)
{
scanf("%f",&p[i]);
m = m + p[i]; // 可以在这里实现和计算。
}
evr=m/n;
printf("output everage=%0.2f",evr);
delete p; // 结束释放。。。