#include
int main()
{
char a[10];
int letter=0,blank=0,digit=0,other=0,i;
for(i=0;i<10;i++)
{
scanf("%c",&a[i]);
if(i==5) printf("\n");
}
for(i=0;i<10;i++)
{
if(a[i]==' ') blank++;
else if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z' ))letter++;
else if(a[i]>='0'&&a[i]<='9') digit++;
else other++;
}
printf("letter=%d,blank=%d,digit=%d,other=%d",letter,blank,digit,other);
return 0;
}
修改如下,供参考:
#include <stdio.h>
int main()
{
char a[10];
int letter=0,blank=0,digit=0,other=0,i=0;
while ((a[i]=getchar()) != '\n' && i < 10)
{ //for(i=0;i<10;i++)
//scanf("%c",&a[i]);
//if(i==5) printf("\n");
//}
//for(i=0;i<10;i++)
//{
if(a[i]==' ')
blank++;
else if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z' ))
letter++;
else if(a[i]>='0'&&a[i]<='9')
digit++;
else other++;
i++;
}
printf("letter=%d,blank=%d,digit=%d,other=%d",letter,blank,digit,other);
return 0;
}
没有大问题。
#include <stdio.h>
int main()
{
char a[10];
int letter = 0, blank = 0, digit = 0, other = 0, i;
for (i = 0; i < 10; i++)
{
scanf("%c", &a[i]);
// if (i == 5)//这行是多余的
// printf("\n"); //这行是多余的
}
for (i = 0; i < 10; i++)
{
if (a[i] == ' ')
blank++;
else if ((a[i] >= 'A' && a[i] <= 'Z') || (a[i] >= 'a' && a[i] <= 'z'))
letter++;
else if (a[i] >= '0' && a[i] <= '9')
digit++;
else
other++;
}
printf("letter=%d,blank=%d,digit=%d,other=%d", letter, blank, digit, other);
return 0;
}