无法从数组中输出正确的最大值和最小值
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]);
我编写了一个程序,让用户选择天数(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]);