这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业09 |
我在这个课程的目标是 | 熟悉好break,continue的用法并熟练运用嵌套语句 |
这个作业在那个具体方面帮助我实现目标 | 在写pta时对题目的理解并解决上 |
参考文献 | 《c程序设计》 |
1.PTA实验作业
1.1 7-1 打印九九口诀表
下面是一个完整的下三角九九口诀表:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
16=6 26=12 36=18 46=24 56=30 66=36
17=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 99=81
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角NN部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
1.1.1数据处理
数据表达:我运用了整型变量n, i, j;其中i为行,j为列,n是所输入的数。
数据处理:先对行数用一个for循环,再在这个基础上对列数进行循环,使其不能大于行数,再分别对行数大于列数时和列数大于行数时谁在前进行讨论。
伪代码展示:
include<stdio.h>
int main()
{
定义整型变量n, i, j;
输入n;
for (i = 1; i <= n; i++)
{
for (j = 1; j <= i; j++)
{
if (行数乘以列数大于等于10)
{
printf("%d%d = %d ", j, i, j * i);列数在前,行数在后,输出列数乘以行数;
}
else
{
printf("%d%d = %d ", j, i, j * i)列数在前,行数在后,输出列数乘以行数;
}
}
printf("
");换行输出;
}
return 0;
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
3 | 11 = 1 12 = 2 22 = 4 13 = 3 23 = 6 33 = 9 | 1到3的乘法表 |
2 | 11 = 1 12 = 2 2*2 = 4 | 1到2的乘法表 |
1.1.4 PTA提交列表及说明
多种错误:由于开始没将题目理解透彻,忽视了可能会出现8*6=48这样当行数大于列数时行数仍让在前的类似情况,后加入了if-else的语句进行判断才得以解决。
格式错误:少打了一个空格
1.2
1.2.1 数据处理
数据表达:定义了整型变量N, i, j, num,和字符型变量c;N为输入的边长,c为输入的字符.i和j用于循环
数据处理:伪代码展示:
include <stdio.h>
int main()
{
char c; 定义字符型变量c;N为输入的边长,c为输入的字符,i和j用于循环
scanf("%d %c", &N, &c);
num = N / 2.0 + 0.5;对输入的N进行四舍五入
for (i = 0; i < num; i++)
{
for (j = 0; j < n; j++)
{
printf("%c", c);输出c
}
printf("
");换行输出
}
return 0;
}
1.2.2实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 a | aaaa aaaa | 正确 |
3 b | bbb bbb | 正确 |
1.2.4 PTA提交列表及说明
由于在编译器上多次编译过了,所以就没出现错误;但在编译器上我也出现了没给2加上个.0的情况,因为它可能是个奇数,所以除出来就会是小数,所以后改为2.0
2.代码互评
同学代码截图
同学代码截图
自己代码截图
1,第一位同学的代码与我的相同之处是在for语句中嵌套了一个for语句,而不同之处就在于他对于输入的数的四舍五入用的是if-else来判断该数除以2是有余数来进行加1的。
2,第二位同学的代码中只定义了两个变量,而且他的嵌套运用的更加灵活,因为他是分奇数偶数判断来进行运算的,我是直接用num = N / 2.0 + 0.5来对奇数进行变偶,在这点上可能我的更简单一些吧
3.学习总结
3.1 学习进度条
日期/周 | 这周所花的时间/小时 | 代码行数 | 学到的知识点 | 目前比较困惑的地方 |
---|---|---|---|---|
第四周 | 5 | 68 | ||
第五周 | 6 | 86 | ||
第六周 | 15 | 168 | ||
第七周 | 7 | 127 | ||
第八周 | 20 | 268 | for循环语句 | 一些符号语句的含义 |
第九周 | 24 | 298 | fact语句 | 符号的含义 |
第十周 | 26 | 324 | 字符型数据类型和逻辑运算符 | 部分逻辑运算符的含义 |
第十一周 | 20 | 278 | 多分支结构switch语句 | 分支结构内部的区别于联系以及数组 |
第十二周 | 28 | 422 | while语句与do-while语句 | do-while语句和数组 |
第十三周 | 25 | 287 | brerak,continue语句和嵌套式语句 | 基础知识不牢固 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
- 这周学习的是break,continue语句,还有嵌套语句的深入学习,时间过得很快,转眼就要大一就要走过一半了,c语言也马上快结课了,我对自己对知识的掌握的程度都还不是和清楚,可能自学的效率比较低吧,很多基本的语句稍微难点的题就不会用了,趁着离程序设计大赛和期末考试还有一段时间,我得好好恶补一下!加油加油!!!