c - 所有输入的最小值——C

标签 c minmax

在 C 类(class)中,我们学习了 if/else 语句、重复、运算符、循环和开关。

此作业的目的是让用户输入 5 个数字并返回以下输出:

显示输入的最小数字

显示输入的最大数

显示输入的五个数字之和

显示输入的五个数字的平均值

我知道它很长而且可能陷入困境,但它运行并适用于除重复输出零而不是实际最小数字的“最小值”之外的所有对象。不知道我哪里做错了。任何提示都会有所帮助。

int choice = 0, number, sum = 0, count = 0, minim = 0, max = 0;
float average;

printf("Please enter your first number: ");
scanf("%i", &number);
if (number < minim) {
    minim = number;  }
if (max < number) {
    max = number;  }
   count += number;

printf("Please enter your second number: ");
scanf("%i", &number);
if (number < minim) {
    minim = number;  }
if (max < number) {
    max = number;  }
count += number;

printf("Please enter your third number: ");
scanf("%i", &number);
if (number < minim) {
    minim = number;  }
if (max < number) {
    max = number;  }
count += number;

printf("Please enter your fourth number: ");
scanf("%i", &number);
if (number < minim) {
    minim = number;  }
if (max < number) {
    max = number;  }
count += number;

printf("Please enter your fifth number: ");
scanf("%i", &number);
if (number < minim) {
    minim = number;  }
if (max < number) {
    max = number;  }
count += number;

sum += count;
average = sum / 5;

while (choice != -1) {
    printf("\n\nChoose an option from the menu below to see the results (1,2,3,4) or use (-1) to exit:\n");
    printf("1.  Smallest number entered\n");
    printf("2.  Largest number entered\n");
    printf("3.  Sum of the five numbers entered\n");
    printf("4.  Average of the five numbers entered\n\n");
    printf("\nEnter your selection: ");
    scanf("%i", &choice);

    switch (choice) {
        case 1:
            printf("\n The smallest number entered is %i\n", minim);
            break;
        case 2:
            printf("\n The largest number entered is %i\n", max);
            break;
        case 3:
            printf("\n The sum of the five numbers entered is %i\n", sum);
            break;
        case 4:
            printf("\n The average of the five numbers entered is %.2lf\n", average);
            break;
        default:
        printf("Incorrect menu option selected.\n");
    }
}

printf("\nThank you for your time. Exiting program.\n");

最佳答案

正如 John3136 提到的,您可以将初始最小值分配给常量 INT_MAX,将初始最大值分配给 INT_MIN,您可能应该这样做,因为它会使转换到循环更容易,但是当前代码的一个更简单的替代方法是简单地将用户输入的初始值分配给 minim。如果您使用 max to 执行此操作也会有所帮助,因为它将允许您的程序处理负数。

关于c - 所有输入的最小值——C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49501235/

相关文章:

c - 在没有库的情况下在 C 中使用 DLL

c++ - 字符大小和 const void*

c++ - 如何替换我的 'for' 循环以通过 STL mimax 算法查找最小值/最大值

C 编程 WM_PAINT 会导致不良行为

c - 使用数组来统计选票

c - 指针无法正确打印值

linux - 在 Linux 中从文件中打印最小值和最大值

css - CSS中的minmax()和clamp()有什么区别?

java - 我们得到了二维数组,arr (n)(n)。 e 选择任意索引,任务是计算周围元素的最小值和最大值

c - 将两个不同的整数相加