C语言II博客作业03
1.作业头
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11918 |
这个作业的目标 | <让我们自己学会一些拓展类的知识,主动去学习去深入了解字符串数组相关知识。> |
学号 | <20209136> |
一、本周作业
1.1 完成PTA作业,并给出编程题完成截图
PTA第一题:向右移动字符串
PTA第二题:加强密码
PTA第三题:手机号码
1.2 挑战题目:九宫格键盘对应英语单词
如下:
九宫格键盘一般可以用于输入字母。如用2可以输入A、B、C,用3可以输入D、E、F等。如图所示:
对于号码5869872,可以依次输出其代表的所有字母组合。如:JTMWTPA、JTMWTPB…… 您是否可以根据这样的对应关系设计一个程序,尽可能快地从这些字母组合中找到一个有意义的单词来表述一个电话号码呢?如:可以用单词“computer”来描述号码26678837.
题目来源:《编程之美——微软技术面试心得》 稍有修改
1.代码图片
2.代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
int i=0,s=0;
char b[100];
b[i]=getchar();
while(b[i]!='\n')
{
if(b[i]>='a'&&b[i]<='c'){
printf("2");
goto s;
}
if(b[i]>='d'&&b[i]<='f'){
printf("3");
goto s;
}
if(b[i]>='g'&&b[i]<='i'){
printf("4");
goto s;}
if(b[i]>='j'&&b[i]<='l'){
printf("5");
goto s;
}
if(b[i]>='m'&&b[i]<='o'){
printf("6");
goto s;
}
if(b[i]>='p'&&b[i]<='s'){
printf("7");
goto s;
}
if(b[i]>='t'&&b[i]<='v'){
printf("8");
goto s;
}
if(b[i]>='w'&&b[i]<='z'){
printf("9");
goto s;
}
s:
i++;
b[i]=getchar();
}
return 0;
}
3.输入英文单词即可以得到对应的数字,虽然又是自己写的新的垃圾代码,但是自己终归是爱它的,随着我的成长我还是可以继续优化它的。
2.4 请给出本周学习总结(15分)
(1)学习进度条(5分)
周/日期 | 代码行 | 这周所花的时间 | 学到的知识点简介 | 目前比较疑惑的问题 |
---|---|---|---|---|
第一周03.01-03.07 | 510 | 20小时 | 回顾了数据类型和表达式,学习编写文件读写程序。 | 用代码把数据写入文件还不懂,学过的知识有点模糊了,新学的知识还有待消化。 |
第二周03.08-03.14 | 500 | 18小时 | 学会使用构造数据类型—数组进行数据的处理,掌握用一维数组进行编程和掌握选择排序法和二分查找法 | 二分查找法操作起来困难 |
第六周04.05-04.11 | 580 | 20小时 | 学会二维字符串数组的存储和比较 | 二维数组的接收在循环中遍历的同时进行比较 |