C语言II博客作业03
这个作业属于哪个课程 | 2020级计科三班 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 数组储存字符串和用其进行计算 |
学号 | <20209013> |
1.1 完成PTA作业,并给出编程题完成截图
1.1.1
1.1.2
1.1.3
1.2 挑战题目:九宫格键盘对应英语单词九宫格键盘一般可以用于输入字母
如用2可以输入A、B、C,用3可以输入D、E、F等。如图所示:
对于号码5869872,可以依次输出其代表的所有字母组合。如:JTMWTPA、JTMWTPB……
您是否可以根据这样的对应关系设计一个程序,尽可能快地从这些字母组合中找到一个有意义的单词来表述一个电话号码呢?如:可以用单词“computer”来描述号码26678837.
题目来源:《编程之美——微软技术面试心得》 稍有修改
输入英语单词来表述电话号码:
输入电话号码来表述英语单词的情况:
思路:先定义一个二维数组ch[10000000][10000000],ch[i][j],用i代表有几组情况,n为输入几个数字,判断电话号码是否含用7或9,当没有时i=2*pow(3,n),有一个时i=2*4*pow(3,n-1),有二个时i=2*3*pow(4,n-1),
用j进行判断数字,当一个字母代表三个数字时,k=3;for(k=1;k<=3;k++),当k=1的时候,输出第一个字母,当k=2的时候,输出第二个字母,当k=3的时候,输出第三个字母,当一个字母代表四个数字以此类推,
最后当循环中的i发生变化的时候printf("\n")。
2.4 请给出本周学习总结
1 学习进度条
周 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第一周3.3-3.8 | 15小时 | 120行 | 文件存储 | 对于文件还是看的不懂 |
第二周3.10-3.15 | 18小时 | 140行 | 一维数组和排序算法 | 排序算法不熟 |
第六周4.7-4.12 | 22小时 | 180行 | 用数组储存字符串和用其进行计算 | 计算使用的函数用的不熟 |
2 累积代码行和博客字数 | ||||
3 学习内容和感悟
- 使用到字符数组时用#include<string.h>,<string .h> 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。
- strlen函数求字符串长度,strcmp函数比较2个字符串是否一样,strcat字符串连接操,strcpy函数字符串拷贝操作,strncat函数字符串连接操作(前n个字符),strncpy函数字符串拷贝操作(前n个字符),strchr函数查询字串,strstr 函数查询子串。
字符串的输入:
1.gets()只有遇到回车键时才输入结束,用于读取一整行字符串。
2.scanf("%s")当字符串中有空格时就会结束输入,适用于没有空格出现的字符串。
3.可以用while和getchar()输入字符,最后以'\0'结束。
字符串的输出:
1.puts()在显示字符串时会自动在其末尾添加一个换行符,在遇到空字符时会停止输出。
2.printf(%s)不能自动换行。
3.用循环和putchar()输出字符,最后以'\0'结束。
感悟:以上的一些函数只是有一些了解但不会具体的使用,出现了一些新的函数,还要通过练习去适应,本次作业涉及了一些新的知识点,要通过自己自学去找出解决问题的办法。