C 计算器帮助--无法获取最小值和最大值

标签 c if-statement

每次我运行它时,最小值和最大值都是相同的数字,有时是错误的,我完全不明白为什么会这样。这是一个基于用户输入的基本计算器。我猜这是主要问题,但如果不是,我将用其余代码对其进行编辑。

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

最佳答案

您没有将最小值和最大值的初始设置显示为默认值。

float mymin = FLT_MAX;
float mymax = FLT_MIN;

您也不应该使用 if else if 以确保第一次启动循环时设置数据。

此外,由于您在发出测试之前运行循环并完成它,因此您仅在处理的最后测试值,这意味着您永远不会检查最小值或最大值。其他类型的更改也如下所示。

int myfunc(int n)
{
  float mymin = FLT_MAX;
  float mymax = FLT_MIN;
  float sumx = 0.0;
  float sumx2 = 0.0;
  float data;
  float mean;
  float var;
  float sd;
  int i;

  for (i = 1; i <= n; i++) {
    printf("Enter data item %d: ", i);
    scanf("%f", &data);
    if (data > mymax){
      mymax = data;
    }
    if(data < mymin) {
      mymin = data;
    }
    sumx += data;
    sumx2 += (data*data);

  }
  mean = sumx / n;
  var = 1.0/(n-1) * (sumx2 - (1.0/n)*sumx*sumx);
  sd = sqrt(var);

  /* 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 %f.\n", mymin);
  printf("The maximum number in the list is %f.\n", mymax);

  return 0;
}

关于C 计算器帮助--无法获取最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22800268/

相关文章:

Excel - 查找一个值并复制到不同的工作表中

c - 将表示不同类型的两个结构加在一起

c - 如何在 C 中动态分配结构?

c - 用逗号打印 float 和 double 的任何体面的方法?

JAVA:如果有余数打印一行代码,我该如何编写if语句?

java - 输出字符串中元音数量最多的单词

c - 用8位指针写入,用32位指针读取

c - 在函数外释放内存会导致双重释放或损坏错误

C# SQL 查询返回什么不返回?

r - tidyr `fill()` 可以与 R 中的 if_else() 一起使用吗?