主函数中循环最后一下总是被判断成其它,哪怕输入数字和字母,各位看看。

#include <stdio.h>
#include <math.h>
int prn(char ch){
if(ch>='0'&&ch<='9'){
return 1;
}else if(ch>='a'&&ch<='z'){
return 2;
}else return 0;
}
int main(){
int n,t=0,t1=0,t2=0;
char ch;
printf("请输入个数");
scanf("%d",&n);
for(int k=1;k<=n;k++){
printf("请输入");
scanf("%c\n",&ch);
prn(ch);
if(prn(ch)==1){
t++;
}else if(prn(ch)==2){
t1++;
}else if(prn(ch)==0){
t2++;
}
}
printf("数字有%d个字母有%d个其它有%d个",t,t1,t2);
}

img

img

主函数中循环最后一下总是被判断成其它,哪怕输入数字和字母,各位帮忙看看。

scanf("%c\n",&ch); 删掉\n