因此,我创建了这个基本循环来获取用户输入,用它进行一些计算,然后在循环中断后显示计算的总体平均值。问题在于我收到的警告。也许我在这里遗漏了一些东西,但我对此很陌生,所以我不知道问题是什么。第一个警告说:“每当调用函数‘main’时,都会使用未初始化的变量‘miles’。”第二个警告说:“变量‘加仑’在此处使用时可能未初始化。”该程序似乎工作正常,但我只是不知道如何修复警告。如有任何帮助,我们将不胜感激。
#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;
}
最佳答案
消息很清楚,并且很容易在您的程序中发现:
double gallons,miles;
while (miles>=0||gallons>=0) {
miles
在函数中声明, automatic variable 也是如此。 。自动变量未初始化(因此它们具有 garbage values )。现在,在第一个可执行语句中,您比较英里。但英里仍未初始化。也许将以下几行复制到之前?加仑也一样。
printf("Enter the miles driven: ");
scanf("%lf",&miles);
注意:检查 scanf
的返回值是否确实读取了值。
顺便说一句,您可以养成初始化局部变量的习惯,例如使用双加仑 = 0.0, 英里 = 0.0;
而不是仅仅声明双加仑,英里;
。
关于c - 每当在 C 中调用函数 'main' 时,变量都未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53911386/