每次我运行它时,min和max都是相同的数字,有时是错误的,我完全失去了原因。这是一个基于用户输入的基本计算器。我猜这是主要问题,但如果没有,我会用其余的代码编辑它。C计算器帮助 - 无法获取最小值和最大值
for (i = 1; i <= n; i = i + 1) {
printf("Enter data item %d: ", i);
scanf("%f", &data);
sumx = sumx + data;
sumx2 = sumx2 + (data*data);
}
mean = sumx/n;
var = 1.0/(n-1) * (sumx2 - (1.0/n)*sumx*sumx);
sd = sqrt(var);
if (data > max){
max = data;
}
else if(data < min)
min = data;
/* print the computed values */
printf("\n");
printf("mean = %f\n", mean);
printf(" variance = %f\n", var);
printf("std. dev. = %f\n\n", sd);
printf("The minimum number in the list is %d.\n", min);
printf("The maximum number in the list is %d.\n", max);
return 0;
}
的最大值你不是最初设置最大值或最小值任何东西。因此,当您将数据与最大值或最小值进行比较时,它们将包含“随机”值。此外,你只会设置** **最小或最大,而不是两个与你的上述代码。 –
您只将最小值和最大值与输入的最后一个数据项进行比较 - 您应该将数据与for循环内的最小/最大值进行比较。 – ganz
'data'值显然是'float',而'min'和'max'显然是int。他们应该都可以是相同的类型。 – user3386109