C语言 新手遇到的问题 3

来源:百度知道 编辑:UC知道 时间:2024/06/02 01:16:07
输入一连串数字 计算偶数和奇数的个数
谁帮我修改下代码 谢谢了 新手求助```
#include "stdio.h"
main()
{
int a,b=0,c=0,i[80],*p;
printf(" please input shuju:\n");
scanf("%s",i);
p=i;
for(;p!='\0';p++)
{
a=*p;
if a%2==0;
b++;
else
c++;
}
printf("oushu=%d,jishu=%d\n",b,c);

}

#include "stdio.h"
void main()
{
int a,b=0,c=0;
char i[80],*p;
printf(" please input shuju:\n");
scanf("%s",i);
p=i;
for(;*p != '\0';p++)
{
a=*p-'0';
printf("a=%d\n",a);
if (a%2==0)
b++;
else
c++;
}
printf("oushu=%d,jishu=%d\n",b,c);
}

改动的地方:
i你是当字符串来用的,所以要用char类型
p!='\0'应为*p!='\0'
a=*p-'0'; *p为字符型,减去字符'0'得到真正的整数值
if a%2==0;-->if (a%2==0) 条件要加括号,没有分号

应该要在前面在定义一个变量吧
例如int n
for(n=o;n<80;n++)
scanf("%s",i[n])
把scanf("%s",i)改成上面那样,也不知对不对,我也是初学

我想了半天都不知道怎么给你改。。。。
建议别这样写。不用指针。而且不可以%s
你从新拿数组写个吧。比如按你的想法输入123456789.我认为程序会把他算作一个元素。希望高手说说怎么解决。那怕你输入以空格呢。是不是???

你的编程风格太好了,我劝你换种.这种以后写代码多了,可读性就....
我会用C++写,没学过C,不知道C的输出.