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

    作业要求 :【https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2359

    第六次作业: 题目7-1 求1到100的和

    1.实验代码:

    #include<stdio.h>
    int main(){
      int a=1,sum;
      sum = 0;
      for (a = 1; a <= 100; a++)
      sum = a + sum;
      printf("sum = %d
    ", sum);
      system("pause");
      return 0;
    }

    2.解题思路:

    (1)

    第一步:首先定义两个整形变量a和sum(1到100和),并为a和sum设置初始值,使a为1,sum为0;

    第二步:接着运用一个for循环,使a从1一直加到100,由sum=sum+a,使得sum为1到100的和;

    第三步:当a增加到101时,退出循环,输出此时sum的值。

    (2)流程图:

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

     运行结果截图:

     

    调试截图

     

    遇到的问题及解决方法:

    在做题的过程中,我尝试了把for循环中三个判断条件的第一个条件不写,在定义时就赋值a为1,第一个条件也没写分号,编译时发现不可以通过,通过同学们的帮助,我知道只要定义时为a设了初始值,第一个条件可以不用特意写出来,但是分号一定要写。

    个人总结: 

    通过本周的学习,我了解了for循环语句的条件判断和循环体的结构,也知道了循环条件的执行顺序,可以运用for循环解决一些简单的问题,照我看来,如何在循环的基础上,在循环体中列出需要的方程式是一个小难点,通过听老师的讲解,我解决了这个问题。

    第八次作业 :题目7-2 寻找250

    1.实验代码 

    #include<stdio.h>
    int main(){
      int a,t=0;
        while(a=1)
        {
            scanf("%d",&a);
            t++;
            if(a==250)
            {
            printf("%d
    ",t);
            break;
            }
        }
        return 0;
    }

    2.解题思路:

    (1)

    第一步:先定义两个整形变量a(输入的数)和t(第几个数),并设t(第几个数)初始值为0;

    第二步:再进入while循环语句,并输入a的值,接着t的值加1;

    第三步:然后判断a是否等于250,如果a等于250,则输出此时t的值,并退出循环;如果a不等于250,则t继续加1,判断下一个输入的值是否为250,直到a等于250为止;

    第四步:当a等于250时,退出循环,输出是第几个数。

    (2)流程图:

     

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

     运行结果截图:

    调试截图:

     

    遇到的问题及解决方法:

     在答题过程中,我把t++放到了if语句里面了,伴随着输入的数字不同,t的值也一直在变,经过调试发现,当输入的值不是250,t的值就不再变化,于是我把t++放在if语句的前面,最后解决了这个问题。

     个人总结: 

    在 本周的学习过程中,我学习了while和do-while循环语句,通过while循环语句,我们可以省略一些循环条件的判断,使我们的代码更加的简洁明了,节省了代码量,也增加可读性,同时while语句和if语句的结合应用,使我们可以解决一些复杂的问题;

    在我看来,while语句和if语句的结合应用是本周学习的一个难点,两个语句的结合使代码更加的复杂,但也1可以解决更多的问题,通过中国大学慕课网的学习和请教同学,最后解决了这个问题。

     第十次作业:题目7-4 最大公约数和最小公倍数

     1.实验代码:

    #include<stdio.h>
    int main(){
     int m,i,n,w=0,j;
     scanf("%d %d",&m,&n);
     if(m>n) {     
      w=m;
      m=n;
      n=w;
     }
     for(i=m;i>=1;i--){ 
      if(m%i==0&&n%i==0)
      {
       break; } }
     for(j=n;j<=m*n;j++){    
      if(j%m==0&&j%n==0){
       break; } }
        printf("%d %d ",i,j);
     return 0;
    }
     

    2.解题思路:

    (1)

    第一步:先定义四个整形变量m,n,i和w,并设w初始值为0;

    第二步:输入两个数,分别为m和n;

    第三步:接着进行判断m是否大于n,如果m大于n,则通过w,使得m和n的互换,让n大于m,否则就跳过这个if语句;

    第四步: 再然后进入第一个for循环,i从较小的m值开始减小,直到i为1为止,当同时满足m和n除以这个i的余数都为0时,则最大公约数为这个i,再弹出这个循环;

    第五步:接着进入下一个for循环,i从较大的n开始增加,直到m乘以n为止,当同时满足i除以m和n的余数都为0时,则最小公倍数为此时的i,再弹出这个循环;

    第六步:最后输出出需要的最大公约数和最小公倍数。

    (2)流程图:

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

     运行结果截图:

     

    调试截图:

    遇到的问题及解决方法:

    在做题的过程中,我不知道如何使得输入的两个数字其中一个恒大于另一个数字,无法确定数字之间的大小,求的最大公倍数和最小公约数也就不准,不过,通过复习之前做过的pta作业时,我发现了一道比较大小的题,运用其中的算法,使得两个数字的大小互换,这样就保证了其中的一个数恒大于另一个数,最后解决了这个问题。 

     个人总结:

    通过本周的学习,我复习之前学习的所以循环语句,对于循环语句的理解更加的深入,无论是for循环,还是while和do-while循环语句,都可以进行简单的应用;在我看来,能在循环体找到相应的关系式,并合理的运用if语句进行判断,这是一个难点,通过进行一些题目的练习和对过去题目的复习,最后能够解决这些问题。

     学习进度:

     

     互评:

    (1)【https://www.cnblogs.com/wudiabc/p/10016701.html

     (2)【https://www.cnblogs.com/wanghaoze/p/10034626.html

     (3)【https://www.cnblogs.com/104gyy/p/10022689.html

  • 相关阅读:
    Nginx开发从入门到精通
    Nginx配置文件(nginx.conf)配置详解
    转贝叶斯推断及其互联网应用(一):定理简介
    Vim 使用入门快捷键
    从贝叶斯定理说开去
    转特征值和特征向量
    第四章 特征值与特征向量
    numpy基础入门
    python range函数与numpy arange函数
    转悠望南山 Python闲谈(二)聊聊最小二乘法以及leastsq函数
  • 原文地址:https://www.cnblogs.com/wu1263344154/p/10035683.html
Copyright © 2011-2022 走看看