练习7-10 查找指定字符(分数 15)
作者 颜晖
单位 浙江大学
本题要求编写程序,从给定字符串中查找某指定的字符。
输入格式:
输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。
输出格式:
如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。
输入样例1:
复制代码
1
2
3m programming
输出样例1:
复制代码
1
2index = 7
输入样例2:
复制代码
1
2
3a 1234
输出样例2:
复制代码
1Not Found
思路:按顺序输入字符,字符串,利用if语句循环检查指定字符,并输出下标
要点/坑点:
1、本题要求输出指定字符的下标最大值,这里需要有比较大小,考虑到可能不止两个数比较大小,我们需要运用迭代的方式(我是这么叫的)比较大小
2、题目要求分行输入字符和字符串,所以我这里使用了scanf()输入回车
代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34#include <stdio.h> int main() { int i,k; int tip=0,max=0; char a,d; char b[80]; a=getchar(); scanf("%c",&d); //这是一个坑点,要输入回车 i=0; while((b[i]=getchar())!='n'){ i++; } b[i]=''; k=0; for(k=0;b[k]!='';k++){ if((a==b[k])&&(k>=max)){ max=k; tip=1; } } if(tip==1){ printf("index = %d",max); }else{ printf("Not Found"); } return 0; }
反思:
1、字符数组的输入不熟悉,还写成了while循环...
2、对于if语句背后的逻辑掌握不到位,以至于把一条语句分开写
3、在代码实现上,整体逻辑有问题(把输出index放在了for循环里),对每块代码的编写也不熟悉
最后
以上就是健忘摩托最近收集整理的关于[PTA]练习7-10 查找指定字符的全部内容,更多相关[PTA]练习7-10内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复