C语言:输入一组数,统计其中奇数和偶数的个数,知道遇到回车为止。 怎样写啊,请各位高手帮帮忙吧

2024-10-28 13:15:17
推荐回答(3个)
回答(1):

/***以下我觉得自己算写得比较好的了.你可以输入任意多个字符,而且有非数字字符等各种错误输入也不会影响统计.希望对你有所帮助.**/
/***
** 输入一组数,统计奇数和偶数的个数.
**/
#include

int main(void){
char ch;
int num;
int even_num = 0;//纪录偶数个数
int old_num = 0;//奇数个数.
int other = 0;//其它字符个数

printf("请输入一组数字(回车则表示结束!): \n\t");
do{
do{
ch = getchar();
}while(ch==' ');

if(ch=='\n')break;
else if(ch>='0'&&ch<='9'){
num = ch - '0';
if(num%2==0)even_num++;
else old_num++;
}
else other++;
}while(1);

printf("\t以上输入的数中,奇数有: %2d 个,偶数有: %2d 个\n",old_num,even_num);
if(other>0){
printf("\t同时以上输入了: %2d个非数字字符\n",other);
}
return 0;
}///main:
/***以下为输入输出结果示列:
请输入一组数字(回车则表示结束!):
1 2 3 # 4 5 6
以上输入的数中,奇数有: 3 个,偶数有: 3 个
同时以上输入了: 1个非数字字符
----------------------------------------
请输入一组数字(回车则表示结束!):
1 2 3 4 5 6 7 8
以上输入的数中,奇数有: 4 个,偶数有: 4 个
**/

回答(2):

#include

int main()
{
long num;
printf("输入数字 Enter结束!");
scanf("%ld",&num);
int i = 10,a=0,b=0;
while(num*10>=i)
{
if(((num%i)/(i/10))%2 == 1){
a++;}
if(((num%i)/(i/10))%2 == 0){
b++;}
i *= 10;
}

printf("奇数=%d 偶数= %d",a,b);

}
你看看这个行不行。可能有点乱

回答(3):

#include
main()
{
int i,a[10],n=0,j=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{if(a[i]%2==0)
n++;
else
j++;}
printf("偶数有%2d,奇数有%2d",n,j);
}
希望能帮助你,如有疑问请登录http://we.share.lc在线为您解答.