#include
int main()
{
char str[10]={0};
int i,x,y;
scanf("%s",str);
if(str[5]!='\0')
{
printf("非法输入");
return 0;
}
for(i=0;i<5;i++)
{
if(str[i]>='0'&&str[i]<='9')
{
x=str[i];
}else
if(str[i]>='A'&&str[i]<='Z')
{
y++;
}else
{
printf("非法输入");
return 0;
}
}
if(y==5)
{
printf("非法输入");
return 0;
}
else if(x%2==0)
{
printf("通行");
return 0;
} else
{
printf("限行");
return 0;
}
return 0;
}
```
问题是否输入不足5位时,没有处理?修改如下,供参考:
#include <stdio.h>
int main()
{
int i, x, y;
char str[10] = { 0 };
scanf("%s", str);
for (i = 0, x = -1, y = 0; str[i]; i++)
{
if (str[i] >= '0' && str[i] <= '9')
x = str[i] - '0';
else if (str[i] >= 'A' && str[i] <= 'Z')
y++;
else{
x = -1;
break;
}
}
if (i > 5 || i < 5 || x == -1 || y == 5)
printf("非法输入");
else if (x % 2 == 0)
printf("通行");
else
printf("限行");
return 0;
}