c语言嵌套循环作业
一、PTA实验作业
题目1:编程打印空心字符菱形
1. 本题PTA提交列表
设计思路
- 1.定义整形变量菱形的高度,i(用于循环和空格的函数计算),l(用于表示下半部分空格的函数计算)m(用于表示菱形的上半部分的高度).以及字符型变量ch
- 2.判断高度l是否为1,若为1,则直接输出一个字母
- 3.若不为1,用m=(h+1)/2计算上半部分的高度.
- 4.然后根据m和字母前空格数的关系得到计算空格的函数k-i;并用ch+1来表示下一个函数
- 5.然后开始输出第一行的空格和第一行的一个字母.然后换行进入下一行的计算;再计算下一行的时候开始进入i<=m-1的循环
- 6.同理输出第二行所对应的空格数和字母,然后根据函数k=i*2-1;输出第二行两个字母间的空格数,然后输出第二行的字母,并换行.
- 7.以此类推,当循环进行到i>m-1;退出进入下半部分三角的输出;
- 8.类似,又因为下半部分不同于上半部分,计算出最后一行的字母的部分,进入i<m-2的循环
- 9.并用ch-1来进行字母的递减.
- 10.用k<=i的循环来输出空格,接着输出字母
- 11.对于下半部分的字母间的空格用函数 l=(m-2-i+1)*2-1开计算;然后再输出字母;
- 12.以此循环下去,当i>m-2退出循环;
- 13.进入最后一行字母和空格的输出
- 14.用循环k<=m-1来输出空格;最后输出最后一个字母
3.本题调试过程碰到问题及解决办法
- 1.在输出该菱形时没有在输出字母前输出空格,所以输出的结果不是菱形.
- 2.对于下三角形的行数字母间计算空格数的函数用得不正确,所以在输出结果时会发现不对称.
题目2. 猜算式?2*7?=3848中的数字
1. 本题PTA提交列表
设计思路
- 1.定义整形变量A(十位的数字),B(个位的数字),C(代表数字),D(代表数字)
- 2.用两个for语句A<=9和B<=9的嵌套循环来计算
- 3.将C=A10+2;D=70+B;并进行想乘,判断是否满足CD=3848.
- 4.若符合则输出结果
3.本题调试过程碰到问题及解决办法
- 没用遇到问题
餐饮服务质量调查打分
1. 本题PTA提交列表
设计思路
- 1.定义整形变量repeat,n(学生的数量),ch(用于表示等级1),a,b,c,d,e用于统计所对应等级的数量,i,j用于循环语句.
- 2.因为本体要求用repeat来做repeat次运算,所以用for(i<=repeat)来做循环
- 3.给a,b,c,d,e赋值,让他们等于0.避免做的二次repeat的时候结果错误
- 3.有n个学生,所以用for(j<=n)来进行不同等级的数量的运算;输入n.
- 4.如果ch=1,则a的数量加一
- 5..如果ch=2,则b的数量加一
- 6..如果ch=3,则c的数量加一
- 7..如果ch=4,则d的数量加一
- 8..如果ch=5,则e的数量加一
- 9.当j>n时结束循环.
- 10.因为本题的输出案例从1开始,所以首先输入1.
- 11..并用由上面for语句得到的a的数值带入for(j<=a)的循环中,通过循环输出"*"的个数,然后换行.
- 12.输入2,由上面for语句得到的b的数值带入for(j<=b)的循环中,通过输出"*"的个数,然后换行.
- 13.输入3,由上面for语句得到的b的数值带入for(j<=c)的循环中,通过输出"*"的个数,然后换行.
- 14.输入4,由上面for语句得到的b的数值带入for(j<=d)的循环中,通过输出"*"的个数,然后换行.
- 15.输入5,由上面for语句得到的b的数值带入for(j<=e)的循环中,通过输出"*"的个数,然后换行.
3.本题调试过程碰到问题及解决办法
- 1.没有将赋值为0的a,b,c,d,e放入for(i<=repeat)的循环语句,所以当repeat=2时,当进入第二次运算时,所输出的值和第一次结果不一样.
二、同学代码结对互评
1.互评同学名称:郑佳亮
2.我的代码、互评同学代码截图
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
佳亮同学的设计思路更明了,更简单.而我的代码就相对复杂.
注意:第3项是评分重点,一定要有针对性说出问题,别都说好话,请专业去说他代码有哪些优势、哪些劣势。
三、截图本周题目集的PTA最后排名。
四、本周学习总结
1.你学会了什么?
- 1.for语句嵌套循环
- 2.写一个自定义函数要具备哪些条件以及利用函数来更方便的解决问题
2.本周的内容,你还不会什么?
- 1.还不会流利的使用函数
- 2.对于函数的return的返回值的使用会混淆