繁体   English   中英

无法从数组输出正确的最大值和最小值

[英]Trouble outputting the correct maximum and minimum value from array

我编写了一个程序,涉及到用户选择几天(3到10天)输入温度,然后输入每天的高温和低温。 我遇到的问题是,在这些输入中,我必须输出最高和最低的最高温度,以及该最高和最低发生的日期。 我的代码似乎总是跳到最后一天,即使它不包含最高价或最低价,并且该日期总是比输出的天数大一天。 这是我的代码:

#include <stdio.h>

int main (void)
{
    int i;
    int limit;
    int day[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int high[10],low[10];

    printf("---===IPC Temperature Analyzer V2.0===---\n");

    printf("Please enter the number of days between 3 and 10, inclusive: ");
    scanf("%d", &limit);
    while (limit <= 2 || limit >= 11) {
            printf("Invalid entry, please enter a number between 3 and 10,   inclusive: ");
            scanf("%d", &limit);
    }

    for(i = 0;i < limit; i++) {
            printf("Day %d - High: ", day[i]);
            scanf("%d", &high[i]);
            printf("Day %d - Low: ", day[i]);
            scanf("%d", &low[i]);
    }

    printf("\nDay Hi Low\n");
    for (i = 0; i < limit; i++) {
            printf("%d   %d    %d\n", day[i], high[i], low[i]);
    }

    int max = 0;
    int min = 0;

    for (i = 0; i < limit; i++) {
            if (high[max] < high[i])
            max = i;
            if (low[min] < low[i])
            min = i;

    }

    printf("\nHighest temperature was: %d on day %d", high[max], day[max]);

    printf("\nLowest temperature was: %d on day %d ", low[min], day[min]);


    return 0;

}

删除; 从行开始, if (max < high[i]); 并且if (min > low[i]);

你也可以结合这两个循环

for (i = 0; i < limit; i++) {
        if (max < high[i])
        max = high[i];
}

printf("\nHighest temperature was: %d on day %d", max, day[i]);

for (i = 0; i < limit; i++) {
        if (min > low[i])
        min = low[i];
}

像这样的for循环

for (i = 0; i < limit; i++) {
        if (max < high[i])
            max = high[i]
        if (min > low[i])
            min = low[i];
}

阅读输入后,还需要初始化min和max。

int max = 0;
int min = 0;

for (i = 0; i < limit; i++) {
   if (high[max] < high[i])
      max = i;

   if (low[min] > low[i])
      low = i;    
}

printf("\nHighest temperature was: %d on day %d", high[max], day[max]);

printf("\nLowest temperature was: %d on day %d ", low[min], day[min]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM