该程序没有';“当我进入时,不要停止”-“1”;,它会出现以下情况;printf";。为什么? #包括 int main() { 浮动加仑,英里,tot=0,cont=0,平均值=0,除法; 而(加仑!=-1){ printf(“输入所用的加仑数(-1到结尾):”; scanf(“%f”和加仑); printf(“输入行驶里程:”); 扫描频率(“%f”和英里); 分区=英里/加仑; printf(“此油箱的英里/加仑为%.2f\n”,分区); cont++; tot+=除法; } 平均值=tot/cont; printf(“总平均英里/加仑为%.2f\n”,平均值); 返回0; }
当我输入“-1”时,程序不会停止,它会转到下面的“printf”。为什么?也许你在找下面这样的东西该程序没有';“当我进入时,不要停止”-“1”;,它会出现以下情况;printf";。为什么? #包括 int main() { 浮动加仑,英里,tot=0,cont=0,平均值=0,除法; 而(加仑!=-1){ printf(“输入所用的加仑数(-1到结尾):”; scanf(“%f”和加仑); printf(“输入行驶里程:”); 扫描频率(“%f”和英里); 分区=英里/加仑; printf(“此油箱的英里/加仑为%.2f\n”,分区); cont++; tot+=除法; } 平均值=tot/cont; printf(“总平均英里/加仑为%.2f\n”,平均值); 返回0; },c,C,当我输入“-1”时,程序不会停止,它会转到下面的“printf”。为什么?也许你在找下面这样的东西 #include <stdio.h> int main() { float gallons, miles, tot=0, cont=0, average=0, division; while(gallons != -1){ printf("Enter the gallons used (-1 to end): "); scanf("
#include <stdio.h>
int main()
{
float gallons, miles, tot=0, cont=0, average=0, division;
while(gallons != -1){
printf("Enter the gallons used (-1 to end): ");
scanf("%f", &gallons);
printf("Enter the miles driven: ");
scanf("%f", &miles);
division = miles/gallons;
printf("The miles / gallon for this tank was %.2f\n", division);
cont++;
tot+=division;
}
average=tot/cont;
printf("The overall average miles / gallons was %.2f\n", average);
return 0;
}
#包括
int main()
{
浮动加仑=0,英里=0,总吨=0,连续=0,平均=0,除法;
printf(“输入所用的加仑数(-1到结尾):”;
scanf(“%f”和加仑);
而(加仑!=-1){
printf(“输入行驶里程:”);
扫描频率(“%f”和英里);
分区=英里/加仑;
printf(“此油箱的英里/加仑为%.2f\n”,分区);
cont++;
tot+=除法;
printf(“输入所用的加仑数(-1到结尾):”;
scanf(“%f”和加仑);
}
平均值=tot/cont;
printf(“总平均英里/加仑为%.2f\n”,平均值);
返回0;
}
在循环开始时进行扫描。在下一个循环开始时检查加仑值之前,它不会退出。这是未定义的行为,因为gallons
未初始化。如果您想在输入值后退出循环,也许您应该这样做,而不是继续循环体的其余部分。并密切关注@WeatherVane所说的话。同样,一旦你解决了问题并提前离开,如果第一个输入的数据是<代码> -1 ,使用“代码”>(加仑=1)不将某种用法监视器附加到该变量上,那么如何处理除法的潜在代码路径。它在那里进行测试,然后由该代码语句进行测试,而不是在其他地方进行测试。这就是为什么要执行下一个printf
语句的原因。在初学者中,期望循环在条件变为false时立即退出并不少见(我认为这是一种自然的期望),但这不是它的工作原理——只在每次循环迭代开始时检查条件。真正的平均值是英里数之和除以加仑数之和。而不是平均值之和除以出行次数。
#include <stdio.h>
int main()
{
float gallons =0, miles= 0, tot=0, cont=0, average=0, division;
printf("Enter the gallons used (-1 to end): ");
scanf("%f", &gallons);
while(gallons != -1){
printf("Enter the miles driven: ");
scanf("%f", &miles);
division = miles/gallons;
printf("The miles / gallon for this tank was %.2f\n", division);
cont++;
tot+=division;
printf("Enter the gallons used (-1 to end): ");
scanf("%f", &gallons);
}
average=tot/cont;
printf("The overall average miles / gallons was %.2f\n", average);
return 0;
}