Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
该程序没有';“当我进入时,不要停止”-“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 - Fatal编程技术网

该程序没有';“当我进入时,不要停止”-“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";。为什么? #包括 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("

当我输入“-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("%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;
    }