2017-03-31 81 views
0

我正在嘗試爲類構建天氣計算器。C:如何構造if-else語句

這個問題似乎與我的if-else語句。 if應該根據平均氣溫打印出有關天氣狀況的單獨聲明。出於某種原因,該程序總是輸出第二個聲明:「\ n這兩個星期很熱」。

如何正確構造我的if-else語句?

#include <stdio.h> 

int main(void){ 
    int high_temp[14]; 
    int warmdays = 0, colddays = 0, i = 0; 
    float average = 0.0f, sum = 0.0f; 


    printf("\nWeather Analyzer Application by Joey Peters"); 
    for(i = 0; i < 14; i++) { 
     printf("\n\nPlease enter the temperature for day #%d ", i+1); 
     scanf("%d", &high_temp[i]); 

     sum += high_temp[i]; 

     if(high_temp[i] > 60){ 
      warmdays++; 
     } 

     if(high_temp[i] < 60){ 
      colddays++; 
     } 


    } 

     average = sum/14; 
     printf("\nThe number of warm days: %d", warmdays); 
     printf("\nThe nuber of cold days: %d", colddays); 
     printf("\nThe average high temperature: %.2f", average); 

     if(average = 100 || average >= 90){ 
      printf("These two weeks were blazing hot"); 
     } 
    else  
     if(average >= 80 || average <= 89){ 
      printf("\nThese two weeks were quite hot"); 
     } 
    else  

     if(average >= 70 || average <= 79){ 
      printf("\nThese two weeks hot for Michigan"); 
     } 
    else  

     if(average >= 60 || average <= 69){ 
      printf("\nThese two weeks were decent for Michigan"); 
     } 
    else  
     if(average >= 50 || average <= 59){ 
      printf("\nThese two weeks were somewhat cold"); 
     } 
    else 
     if(average < 50){ 
      printf("\nThese two weeks were basically cold"); 
     } 

    printf("\n\nThank you for using the weather analyzer!"); 
    return 0; 

}  
+4

'x> = 80 ||所有x均爲x <= 89'。你可能想重新考慮你的情況。 – user1937198

+0

'average = 100'是一項任務,而不是比較,並且總是評估爲真。 – aschepler

+0

謝謝我是愚蠢的。 –

回答

1

,你必須

if(average = 100 || average >= 90)

您分配100到X,而不是比較它的線。它改成這樣:

if(average == 100 || average >= 90)

或改變它進一步簡化它

if(average >= 90)

由於在是否average檢查沒有點是100,如果你已經檢查,如果它是更大比90.

此外,如果您要檢查average是否在2個數字之間,例如80和89,請使用&&運營商:

if(average >= 80 && average <= 89)