题目一:7-3 编程打印空心字符菱形

1.提交列表

2.设计思路:

  • 1.定义整型变量循环控制变量i,j,k,x,y,z,e及菱形的高度height;
  • 2.定义字符型变量letter;
  • 3.输入字符型变量letter和高度height;.i=2;
  • 4如果i<=(number+1)/2,则当i=2时,j=1,输出空格,重复本步骤,直到j<=number/2,退出 J 循环,输出letter,换行;
  • 5.k=1,如果i!=(number+1)/2,则输出空格,重复本步骤,直到k<=(number+1)/2-i,退出K循环,输出letter;
  • 6.x=2*i-3,输出空格,重复本步骤,直到x>0,退出X循环,输出letter,换行;
  • 7.重复步骤4.5.6.直到i>(number+1)/2;
  • 8.如果i>(number+1)/2,令y=i-(number+1)/2,如果i!=number,输出空格,直到y>0,退出Y循环;
  • 9.如果i!=number,输出letter;;
  • 10.令z=2number-2i-1,如果i!=number,输出空格,直到z>0,退出Z循环;
  • 11.如果i!=number,输出letter并换行;
  • 12.如果i==number,令e=1,输出空格,直到e<=number/2,退出E循环,输出letter;
  • 13.重复步骤8.9.10.11.12.,直到i<=number,退出I循环;

    3.本题调试过程碰到问题及解决办法:

  • 1.这题是调试时间最长的题,一开始看题时没有思路,觉得不论怎么做都很复杂,后来百度了一下,发现一行一行处理可以简化步骤,然后将空格也看成字符,这样一来才有了思路,可是做到后面发现要找到行数和字符个数的关联和规律也是难题,通过不断调试不断修正,费了不少时间才使得菱形得以成型,不过要让字母按一定顺序对称排列又是一大问题,百度后发现可以让字母加减,如letter++(letter--)来做,但是并不理解字母加减是叠加还是只在原来字母的基础上加减,直到听老师讲了之后才明白是在原字母的基础上加减;
  • 2.老师说以后像这样较为复杂的题目都应该写伪代码来帮助理清思路,才不会在调试时出现这样那样的问题;
  • 3.需要经过运算且在代码中反复出现的式子可将其定义成一个变量;

题目二:7-4 换硬币:

1.提交列表:

设计思路:

  • 1.定义累加变量count,个数总和变量total,循环控制变量i,j,k,硬币总值n,每种硬币对应总值;
  • 2.输入n,
  • 3.5分钱:k=n,k--;
  • 4.2分钱:j=n,j--;
  • 5.1分钱:i=n,i--;
  • 6.重复步骤3.4.5.,直到k>0;j>0;i>0;
    1. 令y=5k; m=1i;x=2*j;
  • 8.如果m+x+y==n&&k!=0&&i!=0&&j!=0,count=count+1,total=k+i+j;
  • 9.输出fen5:%d, fen2:%d, fen1:%d, total:%d\n;
  • 10.输出count的值;

    3.本题调试过程碰到问题及解决办法:

  • 1.一开始把条件语句设置为k!=n;j!=n;i!=n,后来经过调试发现错误,改成k!=0;j!=0;i!=0;



  • 2.把k--,j--,i--写成k++,j++,i++,百思不得其解,后来在同学的提醒下该过来,仔细读题后发现“要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法”,顿恍然悟;

    题目三:7-7 歌唱比赛评分系统:

    1.提交列表:

2.设计思路:

  • 1.定义整型变量最大值max,最小值mini,循环控制变量i,k,评委个数n;操作次数repeat,评分总和sum及浮点型变量score;
  • 2.输入repeat;
  • 3.k=1;k++;
  • 4.输入n;
  • 5.sum=0;
  • 6.i=1;i++;
  • 7.如果i==1,max=score;mini=score;
  • 8.如果max<score,max=score;
  • 9.如果mini>score,mini=score;
    1. sum=score+sum;
  • 11.如果i==n,则输出score:%.2f\n",(sum-max-mini)*1.0/(n-2);
  • 12.重复步骤3--11.直到k>repeat,i>n,退出循环;

    3.本题调试过程碰到问题及解决办法:

  • 1.一开始把浮点型变量score对应的格式控制字符串写成%d,答案无法出来;

  • 2.把scanf("%lf",&score)放在I的for循环语句外面,使成绩只能输入一次,将其移入for循环语句就行;
  • 3.继步骤2.后,max=score和mini=score也要随着改动而改动,它们一定得放置在scanf语句之后,但如果放入循环则会对后来的max和mini值产生影响,后来用了一个if语句if(i==1)将其放入循环,解决了问题;
  • 4.格式错误是因为把代码从DAVC上复制过来时少复制了花括号;

    二、同学代码结对互评:

    1.互评同学名称

    李琴

    2.我的代码、互评同学代码截图

  • 1.同学的代码

  • 2.我的代码

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

  • 1.同学的grade和score其实可以合并成一个数,变量尽量减少;
  • 2.同学代码里的max=grade和min=max应当只在第一次循环即i=1的时候赋值,因此应当在其前加上条件语句if(i==1){};
  • 3.if() else{}语句在这里不适用,应当用两个if语句如if(max
  • 4.第11行的sum等于0就行了;
  • 5.同学做得比我好的地方是没有犯定义和格式类型不对应的错误,很多基本功也很扎实,如很好地实现了一次输入多个数值;而且加上了if(n>3&&n<10)这样的限制条件,考虑得很周到;

三、本周学习总结:

1.你学会了什么?

  • 1.学会了调用函数,函数首部由函数类型,函数名,形式参数表组成,最后要加分号作为结尾;
  • 2.形参的值改变后不影响实参赋值;
  • 3.局部变量的return语句只能返还一个值;
  • 4.做了菱形的题目后,对代码的运行逻辑和原理有了更深的了解,尤其是在和数学的结合方面,假如没有用数学方法查找规律便很难做出来;

    对逻辑思维也是一大挑战,究竟怎么做才能简化问题?答案是一行一行去完成;
  • 5.学会了同时输入多个数值的做法,就是把scanf语句放入循环中;
  • 6.调试代码更加得心应手,知道了一般应该把断点设置在scanf后面,假如循环代码在某个地方卡住,要看是否是\n在捣乱,有时换行符也起着关键作用,使用不当会让整段代码无法运行;
  • 7.学会了比较最大值和最小值,基本思路是先将初值赋给max和mini,然后用if语句判断,根据每次判断结果来决定最大最小值是否更换;
  • 8.学会了i++和i--的区别,当循环的执行与i的大小无关,而与其最终运行次数有关时,两个无区别,只有当与i的值有关时,才要加以区分,i++是从小到大的值,i--是从大到小值;
  • 9.九九口诀表看似简单,但是要把代码写出并不容易,要用嵌套循环,且左边的值从左至右是变化的,所以是内循环,右边的则是外循环,格式控制符向左对齐用%-4表示,且内循环执行后要换行;
  • 10.认识了缩进符%-4d,它表示要向左对齐,然后包括字符在内一共占用4个格子,后面多出来的用空格代替;
  • 11.学会了字母的递增递减可以用letter+1(或者2,3)和letter-1(或2,3);

    2.本周的内容,你还不会什么?

  • 1.实参与形参如何占用空间;
  • 2.为什么有的代码被调用的函数中有那么多return,有时不知道要到底要return哪一个;
  • 3.有时不懂得如何取合适的变量名;

    四、截图本周题目集的PTA最后排名。

C语言嵌套循环的更多相关文章

  1. C语言嵌套循环作业

    一.PTA实验作业 题目1:7-4 换硬币 1. 本题PTA提交列表 2. 设计思路 1.定义fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量,co ...

  2. 网络1712--c语言嵌套循环作业总结

    1.助教有话说 首先,每周一篇的博客作业是很有必要的:编程的过程不仅仅是会敲几行代码.能够通过PTA就大吉大利了,你更应该做到的是梳理代码思路,通过与他人代码思路的比对,取其精华,进而不断进阶,才能逐 ...

  3. C语言--嵌套循环

    一.PTA实验作业 题目1 水果价格 1.本题PTA提交列表 2.设计思路 第一步:定义变量number,表示输入的编号 第二步:定义变量i,用来记录编号数目 第三步:输出菜单:[1] apple [ ...

  4. Go语言循环判断的使用~

    Go 语言条件语句 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句. 下图展示了程序语言中条件语句的结 ...

  5. GO语言学习(十一)Go 语言循环语句

    Go 语言提供了以下几种类型循环处理语句: 循环类型 描述 for 循环 重复执行语句块 循环嵌套 在 for 循环中嵌套一个或多个 for 循环 语法 Go语言的For循环有3中形式,只有其中的一种 ...

  6. C语言的傻瓜式随笔(一):嵌套循环-程序结构

    循环语句的嵌套 一个循环结构内可以含有另一个循环,称为循环嵌套,又称多重循环.常用的循环嵌套是二重循环,外层循环称为外循环,内层循环称为内循环. ---------不知道哪来的基础概念 这是本宝宝的第 ...

  7. C语言第四次博客作业--嵌套循环

    一.PTA实验作业 题目1:编程打印空心字符菱形 1. 本题PTA提交列表 2. 设计思路(流程图) 3.本题调试过程碰到问题及解决办法 思考过程:将问题拆解为菱形问题和字母变化问题两部分 1> ...

  8. C语言博客作业--嵌套循环

    一.PTA实验作业 题目1:7-4 换硬币 2 .设计思路 第一步:定义3个整型变量i,j,k用于循环,定义3个整型变量x,count,total分别用于储存零钱数额,换法个数,硬币数量: 第二步:输 ...

  9. C语言退出多层嵌套循环技巧

    由于break语句只能影响它的最内层循环,要想立即从深层嵌套循环中退出,有哪些方法呢? 1.使用goto语句: while(condition1) { while(condition2) { whil ...

随机推荐

  1. 2016弱校联盟十一专场10.3 We don't wanna work!

    能把 not working now 写成 not working hard now 还查一晚上也是没谁了 我的做法是维护两个set 分别是前20% 和后80% #include<iostrea ...

  2. iOS - UIImageView 动画

    1.UIImageView 动画 1.1 播放图片集 播放图片集 @property (nonatomic, strong) UIImageView *playImageView; self.play ...

  3. JS中ptototype和__proto__的关系

    学到原型的时候感觉头都大了/(ㄒoㄒ)/~~ 尤其是ptototype和__proto__ 傻傻分不清  通过多番查找资料,根据自己的理解,总结如下: 一.构造函数: 构造函数:通过new关键字可以用 ...

  4. php+sqlServer 2008R2 PHPstudy下数据库环境搭建

    简要:小主从事PHP二年,期间一直做后台;在过程中遇到一个奇葩的组合就是PHP+sqlServer应用场景,希望能够跟各位PHP大神分享和学习探索,如果有不对或者好的建议告知下:*~*! 一.下载sq ...

  5. CF908D Arbitrary Arrangement

    题目大意: 给定三个数\(k\) , \(p_a\) , \(p_b\) 每次有\(\frac{p_a}{p_a+p_b}\)的概率往后面添加一个'a' 每次有\(\frac{p_b}{p_a+p_b ...

  6. 【SDOI2009】HH去散步(矩阵快速幂)

    题面 题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是 ...

  7. MySQL的sum()函数

    如下图,这是一个关于用户参加活动,每个活动会给这位用户评分的一个表: 用户1参加了A活动,评分100: 用户2参加了B活动,评分98,又参加了D活动,评分10: 用户3参加了C活动,评分99 需求:把 ...

  8. 云计算之路-阿里云上:3个manager节点异常造成 docker swarm 集群宕机

    今天 11:29 - 11:39 左右,docker swarm 集群 3 个 manager 节点同时出现异常,造成整个集群宕机,由此给您带来很大的麻烦,请您谅解. 受此次故障影响的站点有:博问,闪 ...

  9. springboot dubbo filter之依赖注入null

    @Autowiredprivate ICallerRepository callerRepository;...用dubbo提供的ServiceBean即可获取bean,因为该类已经实现了Applic ...

  10. c#抽取pdf文档标题(2)

    public class IETitle { public static List<WordInfo> WordsInfo = new List<WordInfo>(); pr ...