Problem
This program giving me wrong result for odd numbers because second case statement also executing every time. Please tell me why this happening.
Program
#include <stdio.h>
int main() {
int num,rem,te=0,to=0,e=0,o=0;
float ae,ao;
while (1) {
printf("\nEnter Number : ");
scanf("%d",&num);
if (num==0) break;
rem=num%2;
switch (rem) {
case 0 :
te+=num;
e++;
case 1 :
to+=num;
o++;
}
}
printf("\nTotal of even numbers : %d",te);
printf("\nTotal of odd numbers : %d",to);
printf("\nTotal of number of even numbers : %d",e);
printf("\nTotal of number of odd numbers : %d",o);
printf("\nAverage of even no. : %f",ae=te/e);
printf("\nAverage of odd no. : %f",ao=to/o);
getchar();
return 0;
}
output:
Enter Number : 1
Enter Number : 2
Enter Number : 3
Enter Number : 4
Enter Number : 5
Enter Number : 6
Enter Number : 0
Total of even numbers : 12
Total of odd numbers : 21
Total of number of even numbers : 3
Total of number of odd numbers : 6
Average of even no. : 4.000000
Average of odd no. : 3.000000