Почему при выполнении данного кода выполняются оба условия? - C (СИ)
Формулировка задачи:
Здравствуйте!!! подскажите знающие люди почему при выполнении данного кода выполняются оба условия. при grade =='7' программа выполняет как истинное действие так и ложное...
#include<stdio.h>
#pragma warning (disable:4996)
int main(void)
{
char grade;
unsigned int a_Count = 0;
unsigned int b_Count = 0;
unsigned int c_Count = 0;
unsigned int d_Count = 0;
unsigned int f_Count = 0;
while ((grade = getchar())!= EOF)
{
//printf("%c\n", grade);
if ( grade =='7')
{
a_Count++;
printf("%c\n", grade);
//grade = 0;
//continue;
}
else
{
printf("%s\n","ne tot simvol");
}
//printf("%c\n", grade);
}
printf("a: %d\n", a_Count);
printf("b: %d\n", b_Count);
printf("c: %d\n", c_Count);
printf("d: %d\n", d_Count);
printf("f: %d\n", f_Count);
getch();
}Решение задачи: «Почему при выполнении данного кода выполняются оба условия?»
textual
Листинг программы
else if (grade != '\n')