我正在尝试计算5个数字的平均值,所有数字均小于10。 任何帮助将不胜感激,因为我仍处于学习初期。
int num1, num2;
int sum, i;
float average;
printf ("Enter five numbers to calculate the average:");
for (i = 0; i < 5; i++){
scanf ("%d", num1);
if (num1 > 10){
printf ("You can't enter this number\n");
printf ("Enter five numbers to calculate the average:");
scanf ("%d", num1);
}
else{
num1=num2;
}
sum += num2;
}
average = sum / 5;
printf ("Average is: %f", average);
答案 0 :(得分:1)
您的第一项工作是写scanf("%d", &num1);
,注意 pointer 。最终,您还应该检查scanf
的返回值-如果读取到数字,则返回值为1。
一种方法(不符合所有人的口味)是将if
正文重写为
if (num1 > 10){
printf ("You can't enter this number\n");
printf ("Enter five numbers to calculate the average:");
--i;
} ...
反转i
的增量。
另一种方式(我希望使用)是仅在i
分支中增加else
,并从第三个i++
循环表达式中删除for
。 / p>
您的分配num1 = num2;
也是有问题的,调试器无法解决所有问题,并且您还将意识到需要average = sum / 5.0f;
来避免截断。