zoukankan      html  css  js  c++  java
  • 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(" ")
      }

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

    • 函数的调用看似简单,但在不同程序中可以有不同的写法,而且学习函数更重要的是对函数结构的设计;
    • 刚接触全局变量,对如何使用全局变量还不是很熟练,还需多练习
    • 如何打印菱形图案还是存在一些问题。
  • 相关阅读:
    WPF FAQ (from Syncfusion)
    父窗口与子窗口的层次关系
    [WPF疑难]如何禁用WPF窗口的系统菜单(SystemMenu)
    【讨论】不得不重视的问题:信息太多!信息太杂!
    javaScript系列 [08]javaScript和JSON (进阶)
    javaScript系列 [11]Canvas绘图(路径)
    javaScript系列 [10]Canvas绘图(基础)
    Hexo + Github搭建个人博客
    javaScript系列 [07]日期类型和计时器
    javaScript系列 [09]javaScript和JSON (拓展)
  • 原文地址:https://www.cnblogs.com/wwwwxy128/p/7819174.html
Copyright © 2011-2022 走看看