大家帮我看看这个C语言错在那了?

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:57:37
#include<stdio.h>
void main()
{
char A;
int a=0,b=0,c=0,d=0;
printf("请输入一行字符:");
scanf("%c\n",&A);
while((A=getchar())!='\n')
{
if((A>='A'&&A<='Z')||(A>='a'&&A<='z'))
a++;
else if(A==' ')
b++;
else if(A>='0'&&A<='9')
c++;
else
d++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n",
a,b,c,d );
}

C程序中是没有字符串变量的,要表示字符串就要用字符数组表示,你定义A是字符变量,不能用来放字符串,而你 char A;A=getchar()这两个语句作用是一样的,
#include<stdio.h>
void main()
{
char str[20];
int a=0,b=0,c=0,d=0,i;
printf("请输入一行字符:");
scanf("%s\n",a);
for(i=0;str[i]!='\0';i++)
{
if((str[i]>='A'&&A<='Z')||(str[i]>='a'&&A<='z'))
a++;
else if(str[i]==' ')
b++;
else if(str[i]>='0'&&str[i]<='9')
c++;
else
d++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n",
a,b,c,d );
}
改成这样就行了

scanf完全多余
#include <stdio.h>
#include <stdlib.h>

int main()
{
char A;
int a=0,b=0,c=0,d=0;
printf("请输入一行字符:");
while((A=getchar())!='\n')
{
if((A>='A'&&A<='Z')||(A>='a'&&A<='z'