C语言博客作业02--循环结构

1. 本章学习总结

1.1 思维导图

1490929-20181028161511008-1199199958.png

1.2 本章学习体会及代码量

1.2.1 学习体会

  • 1.通过本章的学习,我体会到了C语言的结构十分复杂多变。前一章节的分支语句还较为好理解,但到了循环以及循环嵌套中,逻辑就会出现很大的混乱。
  • 2.通过PTA,以及作业,我掌握了最基础的循环语句的使用方法,但还是十分不足,要完成还是十分吃力。如for语句的嵌套,当需要浮点除时,我只能使用整除,导致一直错误。
  • 3.在写作业时我没有书写注释的习惯。导致伪代码的编写我完全不懂,希望能自学跟上同学们的进度。务必在以后改正。
  • 4.由于我本身的逻辑思维很差,导致编程很混乱,如在if-else中犯了sum=i+j这种很低级的错误,要努力去改变。

1.2.2 代码累计

1490929-20181028165146779-1315336408.png

2. PTA总分

2.1 PTA中循环结构2次题目集的排名得分

1490929-20181028165512289-950563228.png

1490929-20181028165518674-909849826.png

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 代码截图

1490929-20181028175229900-2006770973.png

3.1.3 测试数据

1490929-20181028175525524-1922968807.png

1490929-20181028175538540-2139701412.png

3.1.4 PTA提交列表及说明

1490929-20181028175817547-474220682.png

  • 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 代码截图

1490929-20181028195308399-929831114.png

3.2.3 测试数据

1490929-20181028200430322-80340326.png
1490929-20181028200439400-1666342796.png

3.2.4 PTA提交列表及说明

1490929-20181028200652149-1461746534.png

  • 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 代码截图

1490929-20181028202029240-812483716.png

3.3.3 测试数据

1490929-20181028202057492-1397115819.png

1490929-20181028202108184-2115288984.png

3.3.4 PTA提交列表

1490929-20181028202149157-537544015.png

  • Q1:运用switch语句,感觉基本正确但是显示错误。
  • A1:在助教老师帮助下发现是单词拼写错误,及时改正。
  • Q2:无用语句过多,导致代码看起来很复杂
  • A2:很多变量没有用到 ,后删除。
4.代码互评

4.1 代码截图

  • 同学的代码
    1490929-20181028202647943-1397319423.png

  • 我的代码
    1490929-20181028202756941-1916195194.png

4.2 不同之处

  • 我的代码很混乱 全部是用if语句来完成,但是同学的代码用了for以及if的嵌套使用,显得很有条理。
  • 在我的代码中没有注释,不方便老师以及助教的检查和批阅,以后我要在代码中加入注释。
  • 在同学的代码中 变量定义清晰,但我的却缺少了自己的思路。应在思考之后再写代码。

1490929-20181028175530624-98051942.png

转载于:https://www.cnblogs.com/cosmosss/p/9866879.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值