博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言第四次博客作业--嵌套循环
阅读量:4605 次
发布时间:2019-06-09

本文共 3193 字,大约阅读时间需要 10 分钟。

一、PTA实验作业

7-3 编程打印空心字符菱形

1.本题PTA实验结果

1232087-20171110185350419-1480655742.png

2. 设计思路

  • (1)定义三个整型变量n,i,j,n代表菱形高度,i和j都为循环变量。定义一个字符型变量c代表起始字母。
  • (2)输入起始字母c,菱形高度n。
  • (3)若(c=>'A'&&c<='G')&&(n<=10&&n%2!=0)),则正常执行下一条语句;若为非法输入,则不输出。
  • (4)先对菱形的上半部分即(n+1)/2部分进行循环。
  • (5)i=1。
  • (6)j=0。
  • (7)输出空格。
  • (8)j++,重复步骤7,直到j>=n-i-(n-1)/2,则结束循环。
  • (9)输出字符c+i-1。
  • (10)若i-1>0,则再输出字符c+i-1。
  • (11)输出换行符。
  • (12)i++,重复步骤6,直到i>(n+1)/2,则结束循环。
  • (13)对菱形的下半部分进行循环。
  • (14)i=(n+1)/2-1。
  • (15)由于对称,所以输出的格式同上半部分,不同的是此时进行i--,直到i<=0,结束循环。

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

  • (1)总的就是没观察好整个格式输出的规律,设置的几个判断函数不能完全符合。
    1232087-20171110201234919-1956669171.png
    1232087-20171110201242106-1645281645.png
    1232087-20171110201247684-760049718.png
  • 解决方法:通过多次计算和尝试,改正了函数表达式。

7-5 梅森数

1.本题PTA实验结果

1232087-20171110201542091-276713426.png

2. 设计思路

  • (1)定义五个整数型变量n代表2的最大次方数,i和j代表循环变量。
  • (2)输出n。
  • (3)若n<2,则输出None。
  • (4)若n>=2&&n<20,则进入循环语句。
  • (5)i=2。
  • (6)y=pow(2,i)-1。
  • (7)m=sqrt(y)。
  • (8)j=2。
  • (9)计算y%j。若!=0,则j++,重复直到j>m,结束循环;若==0直接退出循环,说明y不是素数。
  • (10)若j>m,则输出y。
  • (11)i++,重复步骤6,直到i>n,结束循环。

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

  • (1)没有对n的上限做出限制。
    1232087-20171110203601716-43548824.png
  • 解决办法:添加if(n>=2&&n<20)

7-7 歌唱比赛评分系统

1.本题PTA实验结果

1232087-20171110203945528-1177662540.png

2. 设计思路

  • (1)定义八个整数型变量repeat代表做repeat次运算,n代表评委数,i和j为循环变量,grade代表分数,max代表最高分,min代表最低分。定义一个浮点型变量score代表最终得分。
  • (2)输出整数repeat。
  • (3)j=1。
  • (4)total=0。
  • (5)输入整数n。
  • (6)输入第一个分数grade。
  • (7)赋初值,max=min=grade。
  • (8)i=1。
  • (9)计算total,total=total+grade。
  • (10)再输出一个分数grade。
  • (11)若grade>max,则max=grade。
  • (12)若grade<min,则min=grade。
  • (13)i++,重复步骤9,直到i>(n-1),则结束循环。
  • (14)计算total,total=total+grade。
  • (15)计算score,score=1.0*(total-max-min)/(n-2)。
  • (16)输出score(保留两位小数)。
  • (17)j++,重复步骤4,直到j>repeat,则结束循环。

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

  • (1)没有把所有的步骤放入repeat的循环中。
    1232087-20171110220019903-1512504488.png
  • 解决方法:经过多次审核和询问老师得以解决问题。

二、同学代码结对互评

1.互评同学名称

  • 7-3:李于程

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

我的代码

#include
main(){ int n,i,j; char c; scanf("%c %d",&c, &n); if((c>='A'&&c<='G')&&(n<=10&&n%2!=0)){ for(i=1;i<=(n+1)/2;i++) { for(j=0;j
0) printf("%c",c+i-1); printf("\n"); } for(i=(n+1)/2-1;i>0;i--) { for(j=0;j
0) printf("%c",c+i-1); printf("\n"); } } return 0;}

李某代码

#include
int main(){ int i,h,m,k,l; char ch; ch=getchar(); scanf("%d",&h); m=(h+1)/2; if(m==1){ for(k=1;k<=m-1;k++){ printf(" "); } printf("%c",ch); } else{ for(k=1;k<=m-1;k++){ printf(" "); } printf("%c",ch); printf("\n"); for(i=1;i<=m-1;i++){ ch=ch+1; for(k=1;k<=m-1-i;k++){ printf(" ");} printf("%c",ch); for(k=1;k<=i*2-1;k++){ printf(" ");} printf("%c",ch); printf("\n"); } for(i=1;i<=m-2;i++){ ch=ch-1; l=(m-2-i+1)*2-1; for(k=1;k<=i;k++){ printf(" ");} printf("%c",ch); for(k=1;k<=l;k++){ printf(" ");} printf("%c",ch); printf("\n"); } for(k=1;k<=m-1;k++){ printf(" ");} printf("%c",ch-1); } return 0; }

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

  • 不同:对上下半菱形代码的处理方式不同
  • 各自优势:我的上下半代码相似,较为简单易懂。而该同学的代码则从上往下一步一步,较为直观。
  • 我更喜欢自己的代码风格,处理对称的方式较为简单。

三、截图本周题目集的PTA提交列表及最后排名。

1.PTA提交列表

1232087-20171110222010966-695438400.png

1232087-20171110222018372-1971564745.png

2.PTA排名

1232087-20171110222144278-1509534654.png

四、本周学习总结

1.你学会了什么?

  • 我学会了嵌套结构,并利用嵌套循环解决一些简单问题。
  • 学会了判断素数的方式。
  • 使用嵌套循环结构时,将所有条件都在循环里才算完整。
  • 学会了在循环结构中,恰当的使用在break跳出循环。
  • 懂得了函数的基本应用,全局变量和局部变量的特征。

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

  • 写的代码还是无法做到比较简洁
  • 容易在循环结构中犯迷糊,不能直接明白各种变量的变换情况。
  • void的函数还是不够熟悉。

转载于:https://www.cnblogs.com/oracler0103/p/7816945.html

你可能感兴趣的文章
让IE6/IE7/IE8浏览器支持CSS3属性
查看>>
队列实现霍夫曼树
查看>>
【Java】图片高质量缩放类
查看>>
详解定位与定位应用
查看>>
【前端开发】 5分钟创建 Mock Server
查看>>
java 从键盘录入的三种方法
查看>>
使用jQuery和YQL,以Ajax方式加载外部内容
查看>>
pyspider 示例
查看>>
电路板工艺中的NPTH和PTH
查看>>
JNI实现JAVA和C++互相调用
查看>>
JAVA 笔记(一)
查看>>
js 循环读取 json的值
查看>>
c# 范型Dictionary实用例子
查看>>
C#实现动态页面静态化
查看>>
可选参数、命名参数、.NET的特殊类型、特性
查看>>
利用CGLib实现动态代理实现Spring的AOP
查看>>
面试之SQL(1)--选出选课数量>=2的学号
查看>>
IIS处理并发请求时出现的问题
查看>>
数学作业
查看>>
使用pycharm开发web——django2.1.5(二)创建一个app并做一些配置
查看>>