zoukankan      html  css  js  c++  java
  • 第三次作业

    作业要求https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360

    PTA作业

    第十一周 第六次作业 7-4 输出华氏-摄氏温度转换表

    题目:输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。 温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。

    输入格式:在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开。

    输出格式:第一行输出:"fahr celsius" 接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。 若输入的范围不合法,则输出"Invalid." 

    1.实验代码

    #include<stdio.h>
    int main()
    {
    int lower,fahr,upper;
    double celsius;
    scanf("%d %d",&lower,&upper);
    if(lower<=upper&&upper<=100){
    printf("fahr celsius
    ");
    for(fahr=lower;fahr<=upper;fahr=fahr+2){
    celsius=5*(fahr*1.0-32)/9;
    printf("%d %5.1f
    ",fahr,celsius);}
    }
    else{
    printf("Invalid.");
    }
    return 0;
    }

     2 解题思路

    (1)算法: **利用if语句判断数据。利用for语句实现循环,对华氏温度在[lower,upper]内的每个值,使用温度转换公式计算得出的摄氏温度。         

            *用if语句判断输入数据的合法性,即lower是否小于upper

         *lower小于upper时,进行温度转换

            *lower大于upper时,输出错误提示。         

          *温度转换:用for语句进行重复转换,从lower开始,到upper结束,步长为1。         

    (2)流程图:

     

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

    (1)错误:for语句后加了“;”

    (2)有错误提示的截图

       没有输出温度转换表,而是只输出一次结果

    (3)编译器设置断点、单步调试的界面截图

    (4)解决办法:";"代表空语句,这时循环体为空语句,应删去“;”,循环体语句才能被正常循环。

    第十二周 第九次作业 7-2 输出闰年

    题目:输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。

    输入格式:输入在一行中给出21世纪的某个截止年份。

    输出格式:逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。

    1.实验代码

    #include<stdio.h>
    int main()
    {
      int i,x,n;
      scanf("%d",&n);
      if(n<=2000){
        printf("Invalid year!");
      }
      else if(n<2004){
        printf("None");
      }
      else if(n<=2100){
        for(i = 2004;i<=n;i+=4){
          if(i%100!=0||i%400==0){
            printf("%d
    ",i);
          }
          
        }
      }
      else{
        printf("Invalid year!");
      }
        
          return 0;}

    2解题思路

    (1)算法: **利用else if语句和for语句嵌套实现多分支结构和循环结构        

          *利用else if语句,实现n小于2000,n大于2000小于2004,n大于2004三种情况。

             *n小于2000时,打印“Invalid year!”      

             *n大于2000小于2004时,打印“None”

          *n大于2004时,利用for循环中嵌套if语句的结构判断n是否是闰年,如果是闰年,就输出。

    (2)流程图

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

    (1)错误:if和else配对错误。

    (2)有错误提示的截图

    (3)编译器设置断点、单步调试的界面截图

    (4)解决办法:count, sum写程序时要注意缩进,这样可以一目了然,避免了不必要的错误。

    第十三周 第十次作业 7-1 统计素数并求和

    题目:本题要求统计给定整数M和N区间内素数的个数并对它们求和。

    输入格式:输入在一行中给出两个正整数M和N(1≤M≤N≤500)。

    输出格式:在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

    1.实验代码

    #include <stdio.h>
    int main()
    {
     int M,N,sum,count,i,o;
     
     scanf("%d %d",&M,&N);
     
     sum=0;
     count=0;
    
      for(i=M;i<=N;i++){
                       for(o=2;o<=i/2;o++){
                                           if(i%o==0){
                                                      break;
                                          }
                       }
                       if(o > i/2 && i != 1){
                                             sum=sum+i;
                                             count++;
                       }
     }
     printf("%d %d", count, sum);
     return 0; 
    }

    2 解题思路

    (1)算法: **利用if语句和for语句嵌套实现分支结构和循环结构           

          *利用for语句实现[n,m]区间内每个数字的循环。         

          *第一个for语句中嵌套第二个for语句

         *第二个for语句中嵌套一个if语句,以实现是否为素数的判断

         *如果不是,跳出循环;如果是,进行下一步。         

          *利用if语句,满足条件则sum(素数和)加一,count(素数个数)加一。         

    (2)流程图

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

    (1)错误:将“printf("%d %d", count, sum);”语句错放在了for语句中,导致每次循环都打印一次count和sum的值。 (2)有错误提示的截图

    (3)编译器设置断点、单步调试的界面截图

    (4)解决办法:将“printf("%d %d", count, sum);”语句放在了for语句外面,只打印一次。

    个人总结

    1.本周我学习了的内容:for语句,while语句,do while语句,以及它们和if语句,if else语句,else if语句的相互嵌套    我的收获:for语句,while语句,do while语句虽然都是用来实现循环的语句,它们有相似的地方,但也有很大区别。循环次数确定时,宜用for语句;循环体至少执行一次时,用do while语句

    2.难点: *三种语句形式的区别和正确选择最合适最简便的语句         

          *嵌套时语句之间的逻辑关系

         *调试的过程始终不太清楚,操作生疏   

      措施: *多加练习,熟悉三种语句  

          *勤于思考,多动脑  

           *写程序时要做好缩进,使代码一目了然,便于检查

         *求助于身边的同学,从她们身上我学习到了许多有用的东西

    累积代码行数和时间:

    时间 11.21 11.22 11.23 11.24 11.25 11.26 11.27
    代码行数 30 25 22 18 20 15 33

    累积博客字数和时间:

    时间 11.21 11.22 11.23 11.24 11.25 11.26 11.27
    博客字数 0 0 0 0 500 700 1100

     

    点评:

    https://www.cnblogs.com/mayijing/p/10017399.html

    https://www.cnblogs.com/chumengGTRlhz/p/9991154.html

    https://www.cnblogs.com/abcdsjjs/p/10029383.html

     

     

     

  • 相关阅读:
    js预编译
    JS防抖和节流模式的实际应用
    常见的几种数组去重的方法,总有一种适合你~
    调用微信扫一扫功能,踩坑'invalid signature'
    如何快速的vue init 属于自己的vue模板?
    如何做到在webpack打包vue项目后,在外部动态修改配置文件
    vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序克隆clone
    js解析URL参数
    vue复选框 模拟checkbox多选全选,vue页面加载屏蔽花括号
    js毫秒转换天时分秒/动态倒计时
  • 原文地址:https://www.cnblogs.com/DX552ZYM557/p/10028972.html
Copyright © 2011-2022 走看看