易犯错误
1)a[c-‘a’]:输入的是大写’A’,c减成了小写‘a’导致数组的下标越界,程序运行时发生段错误
2)由字符串转换为数字时只有当字符是一位的时候才可以直接-’0‘,如‘11’就不可以直接-’0‘
3)由数字转化为字符串时也要注意是否是一位的,如11就不可以直接用 +‘0’ 转化
4)审题不细,漏输出,漏条件
题目
问题 A: 【字符串】贝贝的交通指挥系统
注意:
2.当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,第二行输出路口编号,第二行没输出编号,wa
问题 B: 【字符串】贝贝的车牌问题
题目描述
广州市车管所为每一辆入户的汽车都发放一块车牌,车牌的号码由六个字符组成,如A99452、B88888等,这个字符串从左边数起的第一个字符为大写英文字母,如A、B、C等,表示这辆车是属于广州市区内的汽车还是郊区的汽车,后面的五位由数字组成。假定以字母A、B、C、D、E、F、G、R、S、T开头的表示是市区车牌,而以其他字母开头的表示郊区车牌。
车管所把这个任务交给贝贝。请你帮贝贝找出所给出的车牌中有多少辆是广州郊区的汽车。
输入第1行是一个正整数N(1≤N≤105),表示共有N个车牌。接下来的N行,每行是一个车牌号。题目保证给出的车牌不会重复。
输出广州郊区车牌的数量。
检查代码错误:
int n;
cin>>n;
getchar();
int cnt=0;
while(n--)///问题所在
{
scanf("%s",a);
for(int i=0;i<10;i++) if(a[0]==visit[i]) {cnt++;break;}
}
cout<<n-cnt<<endl;///n