循环时求平均值,总赢';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;
}