C语言I博客作业08

博主分享了近期进行C语言编程练习的情况,包括完成的四个编程题目,涉及水仙花数、三角形字符阵列、字符菱形和幸运彩票的判断。在代码实现过程中,博主遇到了初始化、测试覆盖和数组大小等问题,并通过学习和调整逐步解决。此外,博主还总结了过去几周的学习进度,每周投入的时间、代码行数以及学到的知识,特别提到了递归和指针的学习难点。尽管感到困难,但博主认识到理论与实践结合的重要性。
摘要由CSDN通过智能技术生成
这个作业属于哪个课程https://bbs.csdn.net/forums/csuft_swxy_C?typeId=17321
这个作业要求在哪里https://bbs.csdn.net/topics/603607919
这个作业的目标提高写代码能力,巩固自己的知识
学号20218534

一、本周作业(总分35分)

1.PTA作业(20分)

1.1 找出三位水仙花数

本题要求编写程序,输出给定正整数M和N区间内的所有三位水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。

输入格式:

输入在一行中给出两个正整数M和N(100≤M≤N≤999)。

输出格式:

顺序输出M和N区间内所有三位水仙花数,每一行输出一个数。若该区间内没有三位水仙花数,则无输出。

如果M或者N不符合题目的要求,则输出Invalid Value.

输入样例1:

100 400
结尾无空行

输出样例1:

153
370
371
结尾无空行

输入样例2:

500 600
结尾无空行

输出样例2:

结尾无空行

输入样例3:

990 101

输出样例3:

Invalid Value.

1.1.1 代码截图
在这里插入图片描述

1.1.2 数据处理

数据表达:定义变量m,n用来输入区间;变量middleman和sum作数据处理
数据处理:for循环将变量middleman作为中间商把m至n的每一个数的每一位加给变量sum;for里嵌套的if判断是否满足水仙花数

1.1.3 PTA提交列表及说明
在这里插入图片描述

1.2 输出三角形字符阵列

本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。

输入格式:

输入在一行中给出一个正整数n(1≤n<7)。

输出格式:

输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。

输入样例:

4
结尾无空行

输出样例:

A B C D 
E F G 
H I 
J 
结尾无空行

1.2.1 代码截图
在这里插入图片描述

1.2.2 数据处理

数据表达:定义了整型变量n,j,ret;并将变量j初始化为0,ret初始化为n;定义一个字符数组a,用来存放字母
数据处理:创建一个函数用来求n所要输出的字母总数,for循环用来控制输出,当输出个数达到ret(也就是n),输出一个换行符,ret再减一,j变为0

1.2.3 PTA提交列表及说明
在这里插入图片描述

1.3 字符菱形

根据读入的字符和边长,勾画字符菱形。

输入格式:

输入数据含有若干组的数据,每组数据包括一个可见字符c和一个整数n(1≤n≤30)。 以键盘输入^Z或遇到文件结束符时结束数据输入。

输出格式:

输出以c为填充字符,边长为n的菱形,每个菱形之后都输出一个换行符。

输入样例:

在这里给出一组输入。例如:

A 5 B 3
结尾无空行

输出样例:

在这里给出相应的输出。例如:

    A
   AAA
  AAAAA
 AAAAAAA
AAAAAAAAA
 AAAAAAA
  AAAAA
   AAA
    A
  B
 BBB
BBBBB
 BBB
  B
结尾无空行

注:建议用c++的cin处理输入数据

1.3.1 代码截图
在这里插入图片描述

1.3.2 数据处理

数据表达:用了变量n,i,j,k,c。其中n,i,j,k都为整型变量;c为字符型变量。c表示可见字符为填充字符,n表示输入的整数,为菱形的边长
数据处理:用while循环进行多组输入,在while循环中再进行嵌套for循环输出空格与对应的字符

1.3.3 PTA提交列表及说明
在这里插入图片描述

1.4 幸运彩票

彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。

输入格式:

输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。

输出格式:

对每张彩票,如果它是幸运的,就在一行中输出 You are lucky!;否则输出 Wish you good luck.

输入样例:

2
233008
123456
结尾无空行

输出样例:

You are lucky!
Wish you good luck.
结尾无空行

1.4.1 代码截图
在这里插入图片描述

1.4.2 数据处理

数据表达:定义了变量n,i,n从键盘输入,i用来输入六位数的个数;
定义了char类型数组a,用来输入六位数。
数据处理:scanf输入n,getchar吃掉回车,for循环里用gets输入n个六位数,对每个六位数进行判断。

1.4.3 PTA提交列表及说明
在这里插入图片描述
1.答案错误:刚开始写的代码一些变量初始化为0,经过一个for循环后没有再次赋值为0,导致后面的结果错了
2.部分正确:开始编写的代码还有些测试点没过,结果一样的,又没有提示,后面重新写了
3.运行时错误:a字符数组只定义了6个内存空间

2.请给出本章学习总结(15分)

2.1 学习进度条(5分)

周/日期这周所花的时间代码行学到的知识简介目前比较困惑的问题
10/11-10/1715小时135C语言的一些基础知识
10/18-10/2430小时304C语言控制语句:分支、跳转和循环不同头文件的用途
10/25-10/3145小时993数组函数
11/1-11/745小时1010字符串数组二维数组
11/8-11/1442小时886递归递归的轻松运用
11/15-11/2145小时1314时间与空间复杂度复杂代码的时间空间复杂度判断
11/22-11/2845小时1432怎样使用指针

2.2 累积代码行和博客字数(5分)
在这里插入图片描述

2.3 学习内容总结和感悟(5分)
学习内容总结:
这周基本上没学什么新东西,都是在刷题。
专业课上简单学了操作系统。
感悟:
看了学习指针的视频和相关书籍,自己还是不会运用指针做题,太难了,指针又是一块难啃的骨头,同时深入学习计算机不仅要会实际操作还要掌握理论知识,两者都要不断学习,两者兼备才有更加光明的未来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值