2017-03-31 83 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)