我是编码的新手,从C.

问题描述 投票:0回答:1

没有任何值输入程序中的值,最小值读为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函数中的格式字符串缺少开头的括号。

循环缺少闭合括号。

变量“总和”不确定。
c max min
1个回答
2
投票
编译器也会期望回报值,但这很可能只有在丢失的情况下才会发出警告。还值得注意的是,while循环不能做任何有用的事情,但是如果用户输入小于或等于零的数字,它可能会导致无限递归。

您需要在循环中需要的逻辑如下:

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); }

仍然可能还有其他逻辑错误。如果您需要更多帮助,请告诉我。

运气好!

  1. 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); }
  2. Edit(以上代码对数据的初始值= 0不起作用)
  3. 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

循环

瓦尔特
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.