Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.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
循环时求平均值,总赢';t清除,从而继续添加上一个循环条目中的数字 #包括 int main(){ 国际日,航班,t,b; 浮动长度、平均值、和; printf(“你的龙练习了多少天?\n”); scanf(“%d”,天)(&d); 对于(t=1;t_C_Loops_For Loop - Fatal编程技术网

循环时求平均值,总赢';t清除,从而继续添加上一个循环条目中的数字 #包括 int main(){ 国际日,航班,t,b; 浮动长度、平均值、和; printf(“你的龙练习了多少天?\n”); scanf(“%d”,天)(&d); 对于(t=1;t

循环时求平均值,总赢';t清除,从而继续添加上一个循环条目中的数字 #包括 int main(){ 国际日,航班,t,b; 浮动长度、平均值、和; printf(“你的龙练习了多少天?\n”); scanf(“%d”,天)(&d); 对于(t=1;t,c,loops,for-loop,C,Loops,For Loop,如果我正确理解了您的问题,在最后一个printf()语句之后,您应该将sum重置为0,如sum=0; 也就是说,代码中的主要问题是,您在未初始化时使用了sum(一个自动存储局部变量)。在使用(sum+=)之前,您应该将sum初始化为某个值(可能是0)。否则,它将调用 引用C11标准,第§6.7.9章 如果没有显式初始化具有自动存储持续时间的对象,则其值不确定。[…] sum不会清除,因为你没有清除它!编写代码的目的是让你的愚蠢机器(是的,愚蠢!)知道什么时候该做什么! 那么紧接着 #inclu

如果我正确理解了您的问题,在最后一个
printf()
语句之后,您应该将
sum
重置为0,如
sum=0;

也就是说,代码中的主要问题是,您在未初始化时使用了
sum
(一个自动存储局部变量)。在使用(
sum+=
)之前,您应该将
sum
初始化为某个值(可能是0)。否则,它将调用

引用
C11
标准,第§6.7.9章

如果没有显式初始化具有自动存储持续时间的对象,则其值不确定。[…]


sum不会清除,因为你没有清除它!编写代码的目的是让你的愚蠢机器(是的,愚蠢!)知道什么时候该做什么! 那么紧接着

 #include <stdio.h>

 int main () {
 int days, flights, t, b;
 float length, mean, sum;

 printf("How many days has your dragon been practicing?\n");
 scanf("%d", &days);

 for(t=1; t<=days; t++) {
    printf("How many flights were completed in day #%d?\n", t);
    scanf("%d", &flights);
    for(b=1; b<=flights; b++) {
        printf("How long was flight #%d?\n", b);
        scanf("%f", &length);
        sum+=length;
     }
        mean = sum/flights;
        printf("Day #%d: The average distance is %.3f.\n", t, mean);

}

}
这将确保您的总和值每天都会重置!否则C将使用一些随机垃圾值作为您的总和,您将收到奇怪的答案!

一些建议:

1) 如果在调用printf()之后调用scanf(),则没有理由在最后的printf中使用“\n”

2) 始终检查scanf()是否有错误,否则如果出现错误,代码将无效

现在,关于您的代码:

当您使用类似x+=y的内容时,这意味着x=x+y。 因此,在您的例子中,sum+=length表示sum=sum+length。您知道sum的值吗?是的是一个垃圾值

关于这一行,mean=sum/flights;,什么是mean,sum,什么是flights?是的,第一个是float,第二个是int

现在综合起来:

 sum=0;
#包括
内部主(空){
国际日,航班,t,b;
浮动长度,平均值,总和=0;
printf(“你的龙练习了多少天?”;
如果((scanf(“%d”,&days))!=1){
printf(“错误\n”);
}

对于(t=1;t这仍然会使它在第一次未初始化。@Leeor right,错过了一个将立即更新的选项。另一个问题也可能在这里,int flights和float mean,sum,这是:从'int'转换为'float'可能会改变它的值=>>mean=sum/flights;@SouravGhosh它不再计量,OP决定改变他是个问题。你应该检查scanf是否有错误。你这样做最好是在开玩笑。你为什么刚刚编辑了你所有的问题?@rasoolni:当你破坏你的问题时,答案就变得毫无意义了。不要这样做。
 sum=0;
#include <stdio.h>

int main (void){
    int days, flights, t, b;
    float length, mean, sum=0;

    printf("How many days has your dragon been practicing?: ");

    if((scanf("%d", &days)) != 1){
        printf("Error\n");
    }

    for(t=1; t<=days; t++) {
        printf("How many flights were completed in day #%d?: ", t);

        if((scanf("%d", &flights)) != 1){
        printf("Error\n");
    }

    for(b=1; b<=flights; b++) {
        printf("How long was flight #%d?\n", b);

        if((scanf("%f", &length)) != 1){
            printf("Error\n");
        }
        sum+=length;
    }

        mean = sum/(float)flights;
        printf("Day #%d: The average distance is %.3f.\n", t, mean);
    }
    return 0;
}