C语言博客作业02--循环结构
1. 本章学习总结
1.1 思维导图
1.2 本章学习体会及代码量
1.2.1 学习体会
- 1.通过本章的学习,我体会到了C语言的结构十分复杂多变。前一章节的分支语句还较为好理解,但到了循环以及循环嵌套中,逻辑就会出现很大的混乱。
- 2.通过PTA,以及作业,我掌握了最基础的循环语句的使用方法,但还是十分不足,要完成还是十分吃力。如for语句的嵌套,当需要浮点除时,我只能使用整除,导致一直错误。
- 3.在写作业时我没有书写注释的习惯。导致伪代码的编写我完全不懂,希望能自学跟上同学们的进度。务必在以后改正。
- 4.由于我本身的逻辑思维很差,导致编程很混乱,如在if-else中犯了sum=i+j这种很低级的错误,要努力去改变。
1.2.2 代码累计
2. PTA总分
2.1 PTA中循环结构2次题目集的排名得分
2.2 我的总分:
- 循环结构(单层):170分
- 循环的嵌套:98分
- 总分:268分
3. 实验作业
3.1 PTA题目1
- 模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。
3.1.1算法分析
- char ch='0'; 定义算术符号 ;
- int result,a;
- int finished=0;定义结果以及除数
- while(ch!='='){
- if(ch'+')
-else if(ch'-') 当符号是- 做减法运算
-else if(ch'') 当符号时做乘法运算
-else if(ch'/') 当符号是/做除法运算
-if(a!=0) 当除数不为0,则会输出答案
3.1.2 代码截图
3.1.3 测试数据
3.1.4 PTA提交列表及说明
- Q1:一开始将if else语句错用成单句if,导致错误
- A1:应使用if 以及if else 来解决问题
- Q2:忘记了除数不得为0,导致错误
- A2:重新读题后加上了if条件语句
3.2 PTA题目2
- 猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”),相等表示猜到了。如果猜到,则结束程序。程序还要求统计猜的次数,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前,用户输入了一个负数,也输出“Game Over”,并结束程序。
3.2.1算法分析
- int count,guess,num,n; 定义输入的数,计算机给的数,以及循环次数
- if(guess<0 || count>n)
- printf("Game Over!\n"); 显示游戏结束
- if(guess==num)
- printf("Bingo!\n"); 显示bingo(次数为1)
- else if(count<=3)
- printf("Lucky You!\n");显示Lucky you(次数为1-3)
- else
- printf("Good Guess!\n");(大于3次且成功)
- else if(guess>num){
- printf("Too big\n");(过大)
- else
- printf("Too small\n");(过小)
3.2.2 代码截图
3.2.3 测试数据
3.2.4 PTA提交列表及说明
- Q1:代码写了很长时间 但是总是有编译错误
- A1:在同学,助教大帮助下找到了错误 ,是在if语句的使用时,将n的判断条件写在了括号外。
3.3 PTA题目3
- 给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0.
3.3.1算法分析
-
int choice,i;
-
double price; 定义价格和选择以及循环次数
-
printf("[1] apple\n");
-
printf("[2] pear\n");
-
printf("[3] orange\n");
-
printf("[4] grape\n");
-
printf("[0] exit\n"); 分别对应商品名称
-
switch(choice){
-
case 1:price=3.00;break;
-
case 2:price=2.50;break;
-
case 3:price=4.10;break;
-
case 4:price=10.20;break;
-
default:price=0.00;break; 用switch输出各种商品价格
3.3.2 代码截图
3.3.3 测试数据
3.3.4 PTA提交列表
- Q1:运用switch语句,感觉基本正确但是显示错误。
- A1:在助教老师帮助下发现是单词拼写错误,及时改正。
- Q2:无用语句过多,导致代码看起来很复杂
- A2:很多变量没有用到 ,后删除。
4.代码互评
4.1 代码截图
-
同学的代码
-
我的代码
4.2 不同之处
- 我的代码很混乱 全部是用if语句来完成,但是同学的代码用了for以及if的嵌套使用,显得很有条理。
- 在我的代码中没有注释,不方便老师以及助教的检查和批阅,以后我要在代码中加入注释。
- 在同学的代码中 变量定义清晰,但我的却缺少了自己的思路。应在思考之后再写代码。