题目:编写一个程序,读取整数直到用户输入0,找奇偶数个数以及平均值。
我想加一个判断输入是否为数字,不是数字进行提示,程序如下所示:
问题:
1. scanf函数读取不同类型的输入的规则(空白字符的处理方式)
2. printf("%c isn't a digit!Enter a digit!!!\n", (char)a);运行时,这一行总会带入一些莫名的符号,和输入数字有关,而且只要出这个就没有平均数结果了
3. 输入零敲回车.exe就停止工作了
ps:搞了好久了还是不知道怎么破,求助各位大佬!
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main()
{
int a = 0;
int even = 0;
int odd = 0;
int n_even = 0;
int n_odd = 0;
printf("Enter some integers, 0 to quit.\n");
while(scanf("%d", &a))
{
if(a == 0)
break;
else if(isdigit(a))
{
if(a % 2 ==0)
n_even++, even += a;
else
n_odd++, odd += a;
}
else if(isspace(a))
continue;
else
printf("%c isn't a digit!Enter a digit!!!\n", (char)a);
}
printf("Even = %d,ave_even = %f and odd = %d,ave_odd = %f",
n_even, (float)(even/n_even), n_odd, (float)(odd/n_odd));
return 0;
}