没有任何值输入程序中的值,最小值读为0,最大值是最后输入的内容。
最小/最大值应该不同吗?
您在正确的轨道上。由于某些严重的语法错误,您的程序不会编译。
以下是diff相对于工作版本的输出:
25,26c25,28
< scanf(%d", &n);
<
---
> scanf("%d", &n);
>
> }
>
29c31
< sumx = sumx2 = 0.0
---
> sumx = sumx2 = 0.0;
39c41
< mean = sums / n;
---
> mean = sumx / n;
46a49,50
>
> return 0;
校正错误如下:
scanf函数中的格式字符串缺少开头的括号。
循环缺少闭合括号。
变量“总和”不确定。您需要在循环中需要的逻辑如下:
sumx = sumx2 = 0.0;
max = 0;
min = 0;
for ( i = 1; i <= n; i++) {
printf("Enter data item %d: ", i);
scanf("%f", &data);
if(data > max)
max = data;
else if(data < min)
min = data;
if( i ==1 )
min = data;
sumx = sumx + data;
sumx2 = sumx2 + (data * data);
}
仍然可能还有其他逻辑错误。如果您需要更多帮助,请告诉我。运气好!
min = 0;
max = 0;
for ( i = 1; i <= n; i++) {
printf("Enter data item %d: ", i);
scanf("%f", &data);
if(data > max)
max = data;
if(data < min)
min = data;
if(i == 1){min = data;}
sumx = sumx + data;
sumx2 = sumx2 + (data * data);
}
min = INT_MAX; //chux suggestion
max = INT_MIN;
for ( i = 1; i <= n; i++) {
printf("Enter data item %d: ", i);
scanf("%f", &data);
if(data > max)
max = data;
if(data < min)
min = data;
sumx = sumx + data;
sumx2 = sumx2 + (data * data);
}
while
瓦尔特