因此,我进行了这个基本循环以接受用户输入,并使用它进行一些计算,然后在循环中断后显示计算的总体平均值。问题是我收到警告。也许我在这里错过了一些东西,但是我对此并不陌生,所以我不知道问题出在哪里。第一个警告说:“每当调用函数“ main”时,变量“ miles”都将未初始化使用。”第二条警告说:“在此处使用时,变量'gallons'可能未初始化。”该程序似乎工作正常,但我只是不知道如何解决警告。任何帮助表示赞赏。
#include <stdio.h> //library header
int main() { //declare main function
double gallons,miles;
double sum=0;
int count=0;
while (miles>=0||gallons>=0) {
sum+=(miles/gallons);
count++;
printf("\nEnter the gallons used (-1 to end): ");
scanf("%lf",&gallons);
if (gallons<0)
break;
printf("Enter the miles driven: ");
scanf("%lf",&miles);
if (miles<0)
break;
printf("The miles/gallon for this tank was: %lf", miles/gallons);
}
if (count>0) {
printf("The average is: %lf", sum/(count-1));
}
return 0;
}
答案 0 :(得分:1)
该消息很清楚,很容易在程序中发现:
double gallons,miles;
while (miles>=0||gallons>=0) {
miles
在函数中声明, automatic variable 也是如此。自动变量未初始化(因此具有garbage values)。现在,在第一个可执行语句中,您可以比较里程。但是英里仍未初始化。也许将以下几行复制到while之前?加仑也是一样。
printf("Enter the miles driven: ");
scanf("%lf",&miles);
注意:如果确实读取了一个值,请检查scanf
的返回值。
顺便说一句,您可以养成初始化局部变量的习惯,例如与double gallons = 0.0, miles = 0.0;
一起使用,而不仅仅是声明double gallons,miles;
。