C语言博客作业--嵌套循环
一、PTA实验作业
题目1:打印九九口诀表
1. 本题PTA提交列表
2. 设计思路
- 1.定义整型变量i,j,N;
- 2.第一层循环for(i=1;i<=N;i++) 【这一重循环用来控制乘法表的行】
{
内嵌一层循环for(j=1;j<=i;j++)
并且每次循环输出一个式子printf("%d'%d=%-4d",j,i,i'j) 【这一重循环用来控制乘法表的列】
每结束一轮的内循环,输出一个换行符printf("\n")
}
3.本题调试过程碰到问题及解决办法
-
1.问题:一开始运行时并没有大问题,乘法表能正常输出,但乘法表中的数字位置不对
解决方法:将输出语句中的i与j互换
-
2.问题:在输出部分没有格式控制符,“等号右边数字占4位、左对齐”不清楚如何操作
以及尝试用输出空格控制的结果
输出4行不明显,输出九行时可以明显看到等号并未对齐
解决方法:上网查找格式控制符,得知用“-”可以让结果右对齐,并且“%4d”可以让数据输出4个宽度
【以上问题不用调试就可以解决,以下是改正后的调试过程】
题目2:歌唱比赛评分系统
1. 本题PTA提交列表
2. 设计思路
- 1.定义整型变量i,n,repeat,sum,grade;//sum记录得分之和,grade表示成绩
- 2.定义浮点型变量score;//score表示
- 3.输入repeat;
- 4.for(j=1;j<=repeat;j++)
{
定义整型变量 max=0,min=100;
给sum赋初值 sum=0;
输入评委个数 n
for(i=1;i<=n;i++)/有几个评委就做几次循环/
{
输入得分 grade
sum=sum+grade;
如果grade>max 那么max=grade;/当得分比最大值大时,重新给max赋值/
如果grade<min 那么min=grade;/当得分比最小值小时,重新给min赋值/
} - 5.score=(sum-max-min)/(n-2);
- 6.输出最终得分 score
3.本题调试过程碰到问题及解决办法
-
1.问题:刚开始忽略了要按repeat限制循环次数
解决方法:将最外层循环的限制条件改成j<=repeat -
2.问题:计算一次最终得分没有再次输入评委个数,程序错误
解决方法:在外层循环之内,内层循环之外加有个输入n的语句
-
3.问题:以上问题改正后PTA显示格式错误
解决方法:经同学提醒,在最后输出结果处加上换行符。
【调试过程】
添加换行符以后,完成一次最终结果计算会自动输出换行符
题目3:
1. 本题PTA提交列表
2. 设计思路
- 1.定义整型变量A,B;
- 2.for(A=1;A<=10;A++) //A,B一定是小于10的个位数
for(B=1;B<=10;B++)
if((10'A+2)'(7'10+B)==3848)
printf("%d2'7%d=3848",A,B); 输出最后的式子 - 3.return 0;
3.本题调试过程碰到问题及解决办法
本题未遇到问题
以下是调试过程:每次内循环到10时如果不满足if语句中的条件,外循环会加一,然后继续内循环,直到条件满足。
二、同学代码结对互评
1.互评同学名称
曾文惠
2.我的代码、互评同学代码截图
我的代码
互评同学的代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
-
我的代码是参考课本【例4-12】使用的三重循环嵌套方法来写,在编写代码时要先考虑变量大小改变的顺序,但代码语句较少,看起来整齐简单;而同学的代码是采用for语句与if语句结合使用的方式一步一步进行判断,语句较多,但看代码时更容易理解。
-
我更喜欢自己的代码,更能锻炼自己的思考能力,而且我自己本身在这方面比较薄弱,所以会更倾向于使用这种方法。
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么?
-
对嵌套循环的理解更深刻
- 内层循环的控制条件一般以外层循环为准;
- 确定循环初始化语句的位置,混淆内外层循环的初始化易造成程序错误;
- 内外层循环变量不能相同;
- 多重循环中,内层循环也应该有控制循环的语句,在做PTA练习时,曾因未设置控制语句,导致程序无法停止。
-
初步学习函数
- 使用函数必须要定义,如果自定义函数在主调函数后面,那么在函数调用之前,必须加上函数原型声明;
- 函数中,形式参数定义时,每个形参前都要写明类型;
- 形参和实参必须一一对应,两者数量相同,类型尽量一致;
- return语句只能返回一个值;
- 在不返回结果的函数中,void不能省略,否则函数类型被默认定义为int。
2.本周的内容,你还不会什么?
- 函数的调用看似简单,但在不同程序中可以有不同的写法,而且学习函数更重要的是对函数结构的设计;
- 刚接触全局变量,对如何使用全局变量还不是很熟练,还需多练习
- 如何打印菱形图案还是存在一些问题。