如何在不使用排序的情况下找出用户输入的最大值或最小值?

时间:2015-10-09 17:25:55

标签: algorithm sorting

{就像用户输入了1,2,32,12,55,5,61,23,我们必须从中找出最大或最小数字而不使用任何排序技术。 }

5 个答案:

答案 0 :(得分:4)

迭代数字集,跟踪当前最高和当前最低数字,将集合中的每个数字与这些数字进行比较,并在适当时重新分配最高或最低数字。

答案 1 :(得分:2)

您可以读取每个输入并将其与某个变量“maximum”的当前值进行比较。如果输入高于当前值,则输入新的最大值。你可以做到最低限度。

如果您在一行中获得所有输入,则必须对其进行解析。

答案 2 :(得分:0)

答案 3 :(得分:0)

您要求的基本示例,这将继续以整数读取,直到用户输入' -999'。每次用户输入新的最大值时,程序都会提示用户。

READ 如果您想使用它来查找数组中的max,只需使用相同的if语句遍历数组...下面的示例不会存储用户' s值......

#include <stdio.h>
#include <string.h>

void main(){
    int input = 0;
    int max = 0;
    while(input != -999){
    printf("Enter a Value : ");
    scanf(" %d",&input);
    if(input<0)input = 0;
    if(input > max){
        max = input;
        printf("NEW MAX VALUE ENTERED\n");
    }
    printf("Current Max Value: %d\n\n",max);
    }

}

答案 4 :(得分:0)

这个link显示了一个SO答案,其中仅使用3n / 2比较而不是传统的2n比较同时找到max和min(n代表min,n代表max)。