更新时间2019-08-08 06:21:15
读入一组字符,以“?”作为结束标志,统计其中元音字母、辅音字母、数字和其它符号个数(“?”作为结束标志,不计算个数)。如输入字符为 SouA56#s?,则输出YY=3,FY=2,SZ=2,QT=1。
#include"bits/stdc++.h"
using namespace std;
int main()
{
int s1=0,s2=0,s3=0,s4=0;
char c;
while((c=getchar())!='?')
{
if((c>='a'&&c<='z')||()c>='A'&&c<='Z')
{
if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='A'||c=='E'||c=='I'||c=='O'||c=='U')
{
s1++;
}
else
{
s2++;
}
}
else if(c>='0'&&c<='z')
{
s3++;
}
else
{
s4++;
}
}
printf("YY=%d,FY=%d,SZ=%d,QT=%d ",s1,s2,s3,s4);
return 0;
}
你的
if((c>='a'&&c<='z')||()c>='A'&&c<='Z')
括号匹配有问题,改为
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
就可以了,另外建议可直接改为
if (isalpha(c)) //C++可直接判断一个字符是否为字母的