C语言计算平均值输出结果始终为0.0,对应代码哪里存在错误?
代码问题诊断
- 核心错误:
printf("avarage %.2f",&avg);这行代码错误传入了avg变量的地址(&avg),而非avg本身的数值。%.2f格式符期望接收浮点型数值作为参数,传入指针(内存地址)会触发类型不匹配的未定义行为,这就是输出始终为0.0的根本原因。 - 次要问题:输出文本中的
avarage为拼写错误,正确写法是average。
修正后的完整代码
#include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int n,i; float num[100],sum=0.0,avg; printf("please enter a number between 1-100: "); scanf("%d",&n); while(n<1||n>100){ printf("wrong number, enter again: "); scanf("%d",&n); } for(i=0;i<n;i++){ printf("%d. number: ",i+1); scanf("%f",&num[i]); sum+=num[i]; } avg=sum/n; printf("average %.2f",avg); return 0; }
内容的提问来源于stack exchange,提问作者Emre
相关产品推荐
相关产品推荐

