zoukankan      html  css  js  c++  java
  • C语言博客作业嵌套循环

    一、PTA实验作业

    题目一: 打印九九口诀表

    本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。

    1. 本题PTA提交列表

    2. 设计思路

    • 第一步:定义整数型变量N为用户输入数,k为乘法式第一个数,i为乘法式第二个数,result为算式每一个结果
    • 第二步:输入N
    • 第三步:i=1
    • 第四步:for(k=1;k<=i;k++)
      result=i*k;
    • 第五步:当i<=N时,i++,返回第三步

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

    结果和算式虽然正确,但在本题中忘记换行,导致所有的都是一排排完整才会换行

    题目二:梅森数

    1. 本题PTA提交列表

    2. 设计思路

    • 第一步:定义整数型变量i,n为用户输入数,num为梅森数,k
    • 第二步:输入n
    • 第三步:当n=1时,可知没有梅森数,即输出None
    • 第四步:当n>1时,i=2,求出num=pow(2,i)-1
    • 第五步:k=2;k<=sqrt(num);k++
      通过num%k是否为0,判断num是否为素数。
    • 第六步:如果是则输出num,否则进行下一步
    • 第七步:当i<=n时,i++,返回第三步

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

    一开始吧所有的num=pow(2,i)-1都输出来了,后面发现我是在条件不成立是忘记加大括号导致条件即使不符,也会往下走,不会跳出来

    题目三:

    1. 本题PTA提交列表

    2. 设计思路

    • 第一步:定义整数型变量repeat为重复输入次数,n为评委个数,max为最高分,min为最低分,all为总分数,num为分数,i,k,l,begin;定义浮点型变量score为最后得分
    • 第二步:输入repeat
    • 第三步:begin=1;当begin<=repeat时进行下一步
    • 第四步:输入n
    • 第五步:将all初始化为0
    • 第六步:输入分数num,all=all+num
    • 第七步:将max和min初始化为num
    • 第八步:i=1,当i<=n-1时进行下一步
    • 第九步:输入num,all=all+num
    • 第十步:比较max与num的大小,如果num大于max,则max=num
      否则比较min和num的大小,如果num小于min,则min=num
    • 第十一步:i++,返回第八步
    • 第十二步:all=all-max-min
    • 第十三步:score=all/(n-2)
    • 第十三步:输出score
    • 第十四步:begin++,返回第三步

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

    当第一次all=all+num时all=4.4,这让我很迷惑,现在也是不懂,是在后面重新编程一个代码才将这一题过了,至于为什么all=all+num时all=4.4现在依然不懂

    二、同学代码结对互评

    #include <stdio.h>
    int main()
    {
    	double apple,pear,orange,grape,exit,other,price;
    	int i,it;
    	printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n");
    	apple=3.00;
    	pear=2.50;
    	orange=4.10;
    	grape=10.20;
    	other=0.00;
    	for(i=1;i<=5;i++){
    		scanf("%d",&it);
    		if(it==1)
    		{printf("price = %.2f\n",apple);}
    		else if(it==2)
    		{printf("price = %.2f\n",pear);}
    		else if(it==3)	
    		{printf("price = %.2f\n",orange);}
    	    else if(it==4)
    		{printf("price = %.2f\n",grape);}
    		else if(it==0)
    		{i=6;}
    		else
    		{printf("price = %.2f\n",other);}
    	}
    	return 0;
    }
    
    #include<stdio.h>//周炳辉同学
    int main()
    {
    	int i,number;
    	double price;
    	printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n");
        for(i=1;i<=5;i++){
    		scanf("%d",&number); 
    		if(number==0) break;
    		else 
    		 switch(number){
    			case 1:
    				price=3.00;
    				break;
    			case 2:
    				price=2.50;
    				break;
    			case 3:
    				price=4.10;
    				break;
    			case 4:
    				price=10.20;
    				break;
    			case 0:
    				break;
    			default:
    				price=0;
    			}
    			printf("price = %.2f\n",price);
    		}
    		return 0;
     } 
    

    这一题我采用的是if-else-if的连环式,而周炳辉同学则采用switch语句,我的方案较为繁琐,如果当有九个选项时,我的毛病就凸现出来了,所以炳辉同学的代码比我好多了
    我现在感觉他的挺完美的

    三、截图本周题目集的PTA最后排名

    四、本周总结

    1.你学会了什么?

    在本周中学会了break和continue语句,break语句是强制循环结束,执行break语句,循环会提前结束,不在执行循环体中位于其后的语句,而continue语句则是跳过continue紧跟的语句,接下去执行下一语句
    在本周学习嵌套循环,可以使用for、while、do-while三种循环语句。

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

    就像我之前粘连的pta第三题中所说情况就搞不懂为什么会那样,可能说是定义类型不同吧,发现在做pta的时候数学能力也很重要,需要加强数学能力,才能够写出更好的算法算式,在使用嵌套循环是也是觉得要思考太久,有时需要做一两个小时才能做出来,我觉得需要多打代码,加强编程,将会见到效果的。

  • 相关阅读:
    人工智能系统
    Maven tomcat插件配置和使用
    青春谁不糊涂3
    假设但是学习java入门,请离开SSH稍远
    Linux下top订购具体解释
    Unity3d + NGUI 多分辨率适应
    Delphi 注册文件类型 设置文件图标
    如何创建自定义的文件类型关联
    delphi 中字符串与16进制、10进制转换函数
    十六进制字符串转化成字符串输出HexToStr(Delphi版、C#版)
  • 原文地址:https://www.cnblogs.com/gongshunde/p/7814794.html
Copyright © 2011-2022 走看看