C语言 . 输入一行字符,以回车结束,分别统计出其中的英文字母、空格、数字和其他字符的数。帮忙看看哪错

#include<stdio.h>
main()
{
int s,a=0,b=0,c=0,d=0;
scanf("%2d",&s);
if((s>=65&&s<=91)||(s>=97&&s<=123));
a=a+1;
else if(s="");
b=b+1;
else if(s<=1&&s>=9);
c=c+1;
else
d=d+1;
printf(%d%d%d%d,abcd);
}
帮忙看看哪错了,谢谢!!!!!

printf("%d%d%d%d",a,b,c,d);
引号逗号少了吧?

别的我没看 你看看有问题没

-======================================
你的程序我没看懂,是用来干什么的?追问

还是不对“c(8) : warning C4047: '=' : 'int ' differs in levels of indirection from 'char [1]'”

追答

#include
main()
{
int a=0,b=0,c=0,d=0;
char s;
scanf("%c",&s);
while(s!='\n')
{
if(((s>='a')&&(s='A')&&(s='0'&& s<='9')
c=c+1;
else
d=d+1;

scanf("%c",&s);
}
printf("字符%d 空格%d 数字%d 其他%d",a,b,c,d);
}

老兄,说实话,你错的有点多……我都快重写了……

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-08
输入错误。。。 你这个估计重写吧,错误好多- - 这是我写的,纯手工。主要参考的。最好自己再写一下,我的做参考就可以了
#include<stdio.h>
int main()
{
char c;
int n,m,x,y;
n=m=x=y=0;
printf("input a string:");
c=getchar();
while(c!='\n')
{
if (c>=65 and c<=90 || c>=97 and c<=122) n++;
else if (c>=48 and c<=57) m++;
else if (c==32) x++;
else y++;
c=getchar();
}
printf("字母个数:%d\n",n);
printf("数字个数:%d\n",m);
printf("空格个数:%d\n",x);
printf("其他字符个数:%d\n",y);
getchar();getchar();getchar();
}
第2个回答  2011-04-08
表示好多错误~~
1,字符串要存放在数组里
2,含有空格的字符串要用gets,不能用scanf
3,if那一行不能有分号
4,输出不规范
5,英文的ASCII记错了
以下是其中一个解法:
#include<stdio.h>
void main()
{
int a=0,b=0,c=0,d=0,i=0;
char s[80];
gets(s);
for(i=0;i<80&&s[i]!='\0';i++)
{
if((s[i]>=65 && s[i]<=90)||(s[i]>=97&&s[i]<=122))//或if((s[i]>='a' && s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
a=a+1;
else if(s[i]==32)//或s[i]==' ';
b=b+1;
else if(s[i]>=48 && s[i]<=57)//或else if(s[i]>='0' && s[i]<='9')
c=c+1;
else
d=d+1;
}
printf("英文字符有%d\n",a);
printf("空格字符有%d\n",b);
printf("数字字符有%d\n",c);
printf("其他字符有%d\n",d);
}
第3个回答  2011-04-09
main()就没错啦
/t 水平制表符
/b 退格将当前位置移到前一列

三,输入一个字符,判断输入字符的种类,即区分空格,回车,数字字符,英文字母和其他字符(用switch编写)
void main()
{
int k(0);
k = getchar();
switch(k)
{
case 32:
printf("空格!\n");
return;
case 10:
printf("回车!\n");
return;
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
printf("数字!\n");
return;
default:
break;
}

int x1 = (k-13)/26;
switch(x1)
{
case 2:
printf("字母!\n");
return;
default:
break;
}

int x2 = (k-19)/26;
switch(x2)
{
case 3:
printf("字母!\n");
return;
default:
printf("其他键!\n");
break;
}
system("pause");
return;
}
第4个回答  2011-04-08
#include<stdio.h>
#include<string.h>
void main()
{
int a=0,b=0,c=0,d=0;
char s[100];
char e;
printf("please input : ");
scanf("%s",&s);
int length=strlen(s);
for(int i=0;i<length;++i)
{
e=s[i];
if(e>=97 && e<=122)
a++;
else if( e==' ')
b++;
else if(e>=1 && e<=9)
c++;
else
d++;

}printf("%d %d %d %d",a,b,c,d);
}
我写的ASCII值不对,你再查查书吧。
相似回答