zoukankan      html  css  js  c++  java
  • C语言博客作业02循环结构

    第二次作业

    1.本章学习总结.

    1.1 思维导图

    1.2 本章学习体会及代码量学习体会

    1.2.1学习体会

    • 这周关于循环的学习内容相较于前几周的来说相对较难,课本内容虽然不多,但题目难度都较大;
    • 在循环这一章的学习中更了解到了代码需要严谨,在编写代码的时候需要考虑所有可能出现的情况,如果漏掉其中一种,都会导致循环出错,从而答案错误;
    • 因为循环的题目需要考虑的方面较多,大都比较复杂,所以我做题的速度慢了很多,还是需要花更多的时间熟悉代码,希望能提高做题效率;
    • 习惯了使用printf调试以及添加查看的方法来检查自己代码中的错误,在循环字数较少时,添加查看可以清楚观察到每一个变量在循环中的变化,所以要找出错误也很方便;

    1.2.2 代码累计

    2.PTA总分

    2.1截图PTA中嵌套、单层的排名得分


    2.2 我的总分

    • PTA总分:166分;

    3.PTA实验作业

    3.1 PTA题目1

    输入一个整数,输出整数中每一个数对应的拼音

    3.1.1 算法分析

    	输入数num
    	if(num<0) then
    		num=-num then
    		输出拼音fu和一个空格
    	n=num;
    	if(num>9) then
    		do
    		n=n/10;
    		i=i*10;
    		count++;
                    当n=0时退出循环
    		i=i/10;
    		count--;得到的count的值为num位数以及i为对应位数的最小值如num=1234则i=1000
                   j=count;
    	       Num=num;
    	do{
    		if(Num>9&&j!=count) then
    			在数字后输出一个空格
    	n=num/i;	then
    	switch(n){
    	    case 0: then
    	输出数字0的拼音,结束此次循环;
    	    case 1:
    	printf("yi");break;
    	    case 2:
    	printf("er");break;
    	    case 3:
    	printf("san");break;
    	    case 4:
    	printf("si");break;
    	    case 5:
    	printf("wu");break;
    	    case 6:
    	printf("liu");break;
    	    case 7:
    	printf("qi");break;
    	    case 8:
    	printf("ba");break;
    	    case 9:
    	printf("jiu");break;
    }
    count--;
    num=num%i;
    i=i/10;
    }当count值为0时,num的每一位数都已经输出,结束循环 ```
    #### 3.1.2 代码截图
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028202611715-1666241170.png)
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028202627060-1964902141.png)
    
    #### 3.1.3 测试数据
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028203020329-463079163.png)
    
    #### 3.1.4 PTA提交列表及说明
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028203201954-1549909682.png)
    
    * Q1:不知道如何循环读入整数的每一位数;
    * A1: 通过不断除10和取余来计算每一位数,然后引入一个新的变量n来存放,循环读入n的值;
    * Q2:调试后的答案正确但提交总是提示格式错误;
    * A2: 在最后一个输出的拼音后存在空格会出现格式错误,所以把空格加在每一个拼音前输出,并且第一个拼音前不输出;
    
    ### 3.2 PTA题目2
    输入一个随机数与猜的次数,随后输入若干个数与随机数进行比较大小,如果1次猜出该数,提示“Bingo!”;如果3次以内猜到该数,则提示“Lucky You!”;如果超过3次但是在N(>3)次以内(包括第N次)猜到该数,则提示“Good Guess!”;如果超过N次都没有猜到,则提示“Game Over”,并结束程序。如果在到达N次之前输入了一个负数,也输出“Game Over”,并结束程序。
    
    #### 3.2.1 算法分析
    ```  定义rnum为随机数,num为猜的数,N为限制猜的次数,i为已经猜的次数;
    	输入随机数和规定次数	
            i=1;
        do
        	输入猜的数 then
    		if i=1且一次猜中,输出Bingo,结束循环
    		else if 三次以内猜中
    			输出Lucky You!;结束循环
    		else if 超过三次但在规定次数N次内猜中
    		输出Good Guess! ;break;
    		else if 未超过规定次数且猜的数小于随机数rnum
    			i++;
    		输出Too small然后换行,继续循环
    		else if 未超过规定次数且猜的数大于随机数rnum
    			i++;
    		输出Too big然后换行,继续循环
    		else if 猜的次数大于规定次数
    	        直接输出Game Over;结束循环
    		else if 输入的数为负数
    		直接输出Game Over");结束循环
    	}当猜的数num小于0时,结束循环
    
    #### 3.2.2 代码
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028205605809-317143607.png)
    
    #### 3.2.3 测试数据
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028213940147-890153386.png)
    
    #### 3.2.4 PTA提交列表及说明
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028214051636-1754003054.png)
    
    * Q1:输入数字超过N次时循环不会结束
    * A1:引入变量i统计输入的次数,只要在规定次数内未猜中i都加1,知道i=N;
    * Q2:第三次猜中时总是会输出Good Guess!
    * A2:误i的初始值设为0,只要输入了一个猜的数就是猜了一次,所以i的初始值应该是1;
    
    ### 3.3 PTA题目3
    给定四种水果价格,输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而输入0即退出;输入其他编号,显示价格为0。
    
    #### 3.3.1 算法分析
    ```     定义choice为输入的编号,定义n为输入编号的次数;
    	定义price为水果的价格;
    	    for(n=1;n<=5;n++){
    	    输入需要查询水果的编号
    	    if(n==1) then
         输出:[1] apple
    		[2] pear
    	        [3] orange
    		[4] grape
    		[0] exit
    		if(choice==0)
    		结束循环
    		switch(choice){
    			if choice为1,rice=3.00;结束循环;
    			case 2:price=2.50;break;
    			case 3:price=4.10;break;
    			case 4:price=10.20;break;
    			default:price=0.00;break;
    		}
    		换行输出对应的价格;
    	return 0;
    }
    
    #### 3.3.2 代码
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028222345523-11486118.png)
    
    #### 3.3.3 测试数据
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028222913990-1306403419.png)
    
    #### 3.3.4 PTA提交列表及说明
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028223009286-1027562457.png)
    
    * Q1:菜单会循环输入五次,答案有多余字符;
    * A1:在循环中加入另一个条件,即在第一次输入之前才输出菜单,第一次以后菜单不输出;
    * Q2:输入超过1~4的数时答案错误;
    * A2:在switch语句中加入一个判断,即输入1~4以外的字符时price=0.00;
    
    # 4.代码互评
    ### 4.1 代码截图
    * 同学代码
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028225111671-704049618.png)
    
    
    * 我的代码
    ![](https://img2018.cnblogs.com/blog/1474670/201810/1474670-20181028224429602-1748755566.png)
    
    ###4.2 
    不同
    1.空格的输出方式不同,我的是在每个拼音前输出,她的是最后单独输出;
    2.计算每一位数的方式不同,我采用整除10与不断取余的方式,她采用整除平方的方式;
    相同
    1.都是先计算出整数的位数,然后才进去判断每一位数的循环;
  • 相关阅读:
    iOS之地理位置及定位系统 -- 入门笔记(用Swift)
    网易新闻iOS版使用的18个开源组件
    自学 iOS – 三十天三十个 Swift 项目
    iOS之UI--富文本总结
    IOS开发--横向流水布局实现
    IOS开发--仿制网易新闻
    Runtime 方法替换 和 动态添加实例方法 结合使用
    写给IOS开发工程师的网页前端入门笔记
    Runtime(动态添加属性)
    const,static,extern简介(重要)
  • 原文地址:https://www.cnblogs.com/NOH8xxy/p/9867122.html
Copyright © 2011-2022 走看看