/C语言问题,请大家帮我看一下为什么PTA显示部分正确?
题目如下:某地举行活动,车辆限行: 输入一行字符表示车牌号码,五位,只允许是0~9数字或大写英文字母,至少一位数字。 以下几种情况输出“非法输入”: 输入超过五位字符; 没有出现数字; 3)出现其他字符。 若最后一个出现的数字为奇数,输出“限行” ;否则输出“通行”/
#include
int main()
{
char str[6]={0};
int i,number=0,flag=0,n;
for(i=0,number=0;i<=5;i++)
{
scanf("%c",&str[i]);
if(str[i]=='\n'||str[i]==' ')
break;
else n++;
}
//输入车牌号并计算已经输入了几位数,若n>5则输入超过5位数为非法输入
i=0;
while(str[i]!='\n')
{
if((str[i]<='Z'&&str[i]>='A')||(str[i]>='0'&&str[i]<='9')||str[i]=='\n')
flag=0;
else {flag=1;break;}//一旦出现了非法输入的字符则跳出循环
if(str[i]>='0'&&str[i]<='9')
number++;//统计输入车牌号中的数字数量若number==0则为非法输入
i++;
}
if(n>5||number==0||flag==1)
printf("非法输入");
else if((str[4]-'0')%2==1)//判断第五位字符是奇数还是偶数
printf("限行");
else
printf("通行");
return 0;
}