2017-02-12 6 views
-1

私は、ユーザが温度を入力してから毎日高温と低温を入力する日数(3〜10日)を選択するというプログラムを作成しました。私が抱えている問題は、これらの入力の中で最も高い最高温度と最低の低温を出力しなければならないことと、この高低が発生した日です。私のコードは、最高値または最低値が含まれていなくても、日が常に出力される日数よりも1日多い場合でも、最後の日に常にジャンプするようです。ここに私のコードは次のとおりです。アレイから正しい最大値と最小値を出力できない問題

#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; 

} 
+1

'if(max BLUEPIXY

答えて

1

のようなループの一つにこれら二つのループ

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

を組み合わせることができますラインif (max < high[i]);if (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]); 
1

また、あなたは、あなたがこの

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

@Bob__:固定:) – Shravan40

関連する問題