注意作用域的问题。
for(i = 1;i <= n;i++)
{
char ai; //此处定义的ai并不能自动替换成a1,a2等等,只是单纯的一个ai,而且它只存在与这个for作用的大括号内,在括号外不能引用
ai = getchar();
}
for(i = 1;i <= n;i++)
{
if(ai == ' ')
kg++;
else if(ai >='0' && ai <= '9')
sz++;
else if((ai >='a' && ai <= 'z') || (ai >= 'A' && ai <= 'Z'))
zm++;
else
qt++;
}
#include
int main()
{
int n, i, zm = 0, sz = 0, kg = 0, qt = 0;
char ai;
printf("你希望输入多少个字符:");
scanf("%d", &n);
printf("请随意输入%d个字符:", n);
for(i = 1;i <= n;i++)
{
ai = getchar();
}
for(i = 1;i <= n;i++)
{
if(ai ==' ')
kg++;
else if(ai >='0' && ai <= '9')
sz++;
else if((ai >='a' && ai <= 'z') || (ai >= 'A' && ai <= 'Z'))
zm++;
else
qt++;
}
printf("输出: 字母%d个;数字%d个;空格%d个;其他字符%d个.\n", zm, sz, kg, qt);
return 0;
}