C:最小和最大输出

标签 c

我是编码新手,从 C 开始。 由于用户输入,我正在处理的程序让我挂断了电话。我应该找到用户输入的最小值和最大值,但到目前为止我没有尝试过。 任何帮助将不胜感激:

#include <stdio.h>
#include <math.h>

int main() {
    int i;
    int n;
    float data;
    float sumx;
    float sumx2;
    float mean;
    float var;
    float sd;
    int min;
    int max;

    /* Get the number of data lines from the user*/

    printf("How many numbers do you need to enter (n)? ");
    scanf("%d", &n);

    while (n <= 0) {
      printf("Enter positive numbers only, please.\n");
      printf("\n");
      printf("How many numbers do you need to enter (n)? ");
      scanf("%d", &n);

    /* Initialization */

    sumx = sumx2 = 0.0;

    for ( i = 1; i <= n; i++) {
      printf("Enter data item %d: ", i);
      scanf("%f", &data);

      min = 0;
      max = 0;

      if(data > max)
      max = data;
      else if(data < min)
      min = 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);

    printf("\n");
    printf("The minimum value entered: %d\n", min);
    printf("The maximum value entered: %d\n", max);
    printf("\n")
    printf("mean = %f\n", mean);
    printf("variance = %f\n", var);
    printf("std. dev. = %f\n\n", sd);

    return 0;    

无论在程序中输入什么值,最小值都为 0,最大值为最后输入的值。 最小值/最大值是否应该不同?

最佳答案

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

编辑(上面的代码不适用于数据的初始值 = 0)

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循环

瓦尔特

关于C:最小和最大输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22796661/

相关文章:

c - 使用C读取PPM文件的像素数据

c - 将结构类型的变量发送到套接字

c - strcpy() 在可变大小的字符串数组上生成段错误

c - 从文件中读取代码

c - 警告 : passing argument 3 of 'os' with different width due to prototype

c - 解析字符数组时出现段错误

c - 嵌入式编程中的输入和输出有什么区别?

预处理器指令 #include 可以被禁用/排除吗?

在多线程应用程序中创建套接字文件描述符(sock fd)

c - 为什么行不通过调用 gtk_list_store_set 函数在 TreeView 中更新