C语言II博客作业03

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-4
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11920
这个作业的目标 了解字符数组的存储方式,输入输出问题,并学会运用
学号 20209058

1.1 完成PTA作业,并给出编程题完成截图


1.2 挑战题目:九宫格键盘对应英语单词

九宫格键盘一般可以用于输入字母。如用2可以输入A、B、C,用3可以输入D、E、F等。如图所示:

对于号码5869872,可以依次输出其代表的所有字母组合。如:JTMWTPA、JTMWTPB…… 您是否可以根据这样的对应关系设计一个程序,尽可能快地从这些字母组合中找到一个有意义的单词来表述一个电话号码呢?如:可以用单词“computer”来描述号码26678837.

#include<stdio.h>

int main()#include<string.h>
{
	char a[10][10]={"","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};//将各个数字所能代表的字符存储在一个二维数组中
	int b[10]={0,0,3,3,3,3,3,4,3,4};//将各个数字所能代表的字符总数记录于另一个数组中
	char number[12];//用一个数组存储电话号码
	gets(number);
	int lengh=strlen(number);
	int c[lengh];//将数字目前所代表的字母在a数组中的列数下标记录在c数组
	while (true)
	{
		for (int i = 0; i <lengh ; i++) 
		printf("%c", a[number[i]][c[i]]);
		printf("\n");
		int j = lengh- 1;
		while (j>=0)
		{
			if ([j] < b[number[j]] - 1)
			{
				answer[j]++;//第j个数的英语字母改变
				break;//只要有一个字母改变,就退出打印对应的英语字母
			}
			else
			{
				answer[j] = 0;
				j--;
			}
		}
		if (j < 0) break;
	}
	return 0;

	
 } 

1.3 请给出本周学习总结

1 学习进度条

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
3/1-3/3 4h 100 文件的操作与存取 file文件指针的各种操作
3/4-3/10 6h 130 各种排序算法 快速排序插入排序等算法的代码实操
3/11-4/10 7h 140 字符串数组的应用 许多问题涉及到的算法问题

2 累积代码行和博客字数

3 学习内容总结和感悟

1.每做一个题目,都需要花费时间去搜寻相关的资料,有些点是真的想不到,每次都差最后一点
2.查的东西越多发现不会的就越多,每搜一个就涉及一大堆的陌生词汇,大多数的时间都在百度上

posted @ 2021-04-10 21:49  GitHub$  阅读(34)  评论(0编辑  收藏  举报
/* 点击爆炸效果*/
/* 鼠标点击求赞文字特效 */ /*鼠标跟随效果*/