求C语言大神帮我看看哪错了,没语法错误但是运行不出来正确答案。。同级字母数字空格和其他字符的个数。

2024-11-01 05:46:12
推荐回答(3个)
回答1:

首先你输入过一次字符串了 在声明函数中又一次输入 错误1
最后 声明函数返回值太多了
给你发一个比较简单的 你看一下吧
#include
int main()
{
char c;
int letters=0,space=0,digit=0,other=0;
printf("请输入一个字符:\n");
while((c=getchar())!='\n')
{
if(c>='a' &&c<='z'||c>='A'&&c<='Z')
letters++;
else if (c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
other++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n",letters,space,digit,other);
return 0;
}

回答2:

你的代码错的一蹋糊涂,真不知该纠正哪里了,只好在你的基础上修改了一下,你需要好好的练习一下基本的程序开发

#include
void main()
{
int number=0, letter=0,blank=0, other=0 ;
char c;
while((c=getchar())!='\n')
{
if(c>='0'&&c<='9')number++;
else if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letter++;
else if(c==' ')blank++;
else other++;
}
printf("number=%d,letter=%d,blank=%d,other=%d\n",number,letter,blank,other );
}

回答3:

 return(number,letter,blank,other);//逗号表达式,只返回了other的值

C语言没有多返回,要想返回多个值的话,可以通过函数参数或者数组结构体什么的(当然是从堆里面申请的空间,其实就是返回一个指针)