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小时 学会二维字符串数组的存储和比较 二维数组的接收在循环中遍历的同时进行比较
(2)累积代码行和博客字数(5分)

(3)学习内容总结和感悟(5分)
1.学习内容总结

2.感悟:

1.以后的作业估计就是在这种难度下再逐渐提升,这次的题目很有挑战性,完成一个题目需要自己去学习很多的内容,而且还是书本上找不到的,所以得利用网络资源好好学。
2.当被一道题真正难住的时候,多与同学交流往往能起到事半功倍的效果,有利于高效学习,更能加深做题印象。
3.同学写的优秀代码,自己除了可以拿来模仿外还可以多弄点变式,说不定一个更优质的代码就诞生了。
posted @ 2021-04-10 14:31  Vatij  阅读(84)  评论(0编辑  收藏  举报