I cannot find my era as to why the program wont exit. No matter the number i input it still continue to run. If someone cant point out my era it would be highly appreciate..

#include <stdio.h>
#include <conio.h>
#define FROZEN -99
#define BOILING 212
int main(void)
{
    int temp, hot_days, cold_days, pleasant_days, sum, avg, count;
    count = 0;
    sum = 0;
    hot_days = 0;
    cold_days = 0;
    pleasant_days = 0;
    
    
    printf("Please Enter The daily High Temperature(enter -99 or 212 to exit):\n");
    do {
        scanf("%d", &temp);
        }
          while((temp != -99) || (temp != 212)); 
    if (temp<60){
                 cold_days++;
                 count++;
                 sum = sum +temp;
                 }
    else if(temp>84){
                 hot_days++;
                 count++;
                 sum = sum + temp;
                 }
    else if((temp >= 60) && (temp <=84)){
                  pleasant_days++;
                  count++;
                  sum = sum + temp;
                 }
    
    avg = sum/count;
    printf("\nThere are %d cold days\n", cold_days);
    printf("There are %d hot days\n", hot_days);
    printf("There are %d pleasant days\n", pleasant_days); 
    printf("The Average temperature from daily highs are: %d\n ", avg);                   
    
    getch();              
 return(0);

Recommended Answers

All 7 Replies

>while((temp != -99) || (temp != 212));

change the || for a &&

Line 19 -- change || (or) to && (and) logical operator.

[edit]Sorry Aia -- didn't see your post[/edit]

it is the same problem still

nevamind I figured it out while statement goes at the end of the if else statements thanks for the quick response

why don't u better use a CHAR as a centinel? like this:

char ans;
   do{
      (program)
      printf("Do you wish to enter another temperature?");
      scanf("%c",&ans);
      }while ((ans=='y')||(ans=='Y'));

why don't u better use a CHAR as a centinel? like this:

char ans;
   do{
      (program)
      printf("Do you wish to enter another temperature?");
      scanf("%c",&ans);
      }while ((ans=='y')||(ans=='Y'));

Hopefully, because of this :icon_wink:

Hopefully, because of this :icon_wink:

The thing is, i always take care to make my programming "stupid proof", and this way, if the user makes any mistake at entering his/her answer, such as entering "yes", it will not fill up the buffer and screw up the program... maybe if when using the

if (getchar()=='y')

you flush the buffer before the next input... ;)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.