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的嵌套使用,显得很有条理。
  • 在我的代码中没有注释,不方便老师以及助教的检查和批阅,以后我要在代码中加入注释。
  • 在同学的代码中 变量定义清晰,但我的却缺少了自己的思路。应在思考之后再写代码。

posted on 2018-10-28 20:31  Cosmosss  阅读(614)  评论(0编辑  收藏  举报