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.本周的内容,你还不会什么?

  • 函数的调用看似简单,但在不同程序中可以有不同的写法,而且学习函数更重要的是对函数结构的设计;
  • 刚接触全局变量,对如何使用全局变量还不是很熟练,还需多练习
  • 如何打印菱形图案还是存在一些问题。
posted @ 2017-11-11 22:53  看尽长安花  阅读(1785)  评论(5编辑  收藏  举报