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

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

     第七次作业  题目 7-3: 统计学生平均成绩与及格人数

    1.实验代码

    #include <stdio.h>
    int main(void)
    {
      int n,count,i;
      double grade,sum,average;
      scanf("%d",&n);
      sum=0;
      count=0;
      for(i=1;i<=n;i++){
        scanf("%lf",&grade);
        sum = sum + grade;
        average = sum / n;
        if(grade >= 60){
          count++;
      }
    }
      printf("average = %.1lf
    ",average);
        printf("count = %d
    ",count);
      return 0;
    }

    2.解题思路:

    (1).题目算法:

    第一步:定义三个整型变量学生人数n , 及格人数count , i 和三个双浮点型变量学生分数grade ,n个学生的分数总和 sum ,平均分数 average;

    第二步:输入学生人数 n;给sum赋值为0;给count赋值为0;

    第三步:进入循环语句,i=1,输入学生成绩,不断进行i+1和输入学生成绩的步骤的同时也不断进行sum=sum+grade和average=sum/n的计算,直至 i>n;

    第四步:同时如果输入的成绩大于或等于60,那么count就加一,循环也直至>n;

    第五步:输出平均成绩average和及格人数coun

    (2).流程图:

    3、调试过程遇到的问题及其解决方法:

    首先我是这样的代码,于是出现了部分错误,如下:

     进行调试:

    首先输入0

     

     在进行到一下调试时就不能再进行下一步了;

    于是我发现是因为在这里时n=0,无法进行操作,所以我将average=sum/n放在了循环中

    错误原因:当没有学生时,sum=0并且n=0。average没有值,所以出现错误。

    改正之后

     

     第8次作业   7-1 求奇数和

    #include <stdio.h>
    int main(void)
    {
      int a,sum;
      scanf("%d",&a);
      while(a>0){
        if(a%2!=0){
          sum=sum+a;
        }
        scanf("%d",&a);
      }
      printf("%d",sum);
      return 0;
    }

    2.解题思路:

    (1).题目算法:

    第一步:定义两个整型变量a,和奇数之和sum;

    第二步:输入一个值a,a>0;

    第三步:进入循环语句,如果a%2没有余数,则a是奇数,然后算奇数之和sum=sum+a,接着输入a值,直至输出的a<0;

    第四步:输出sum;

     (2).流程图:

     

    3、调试过程遇到的问题及其解决方法:

    首先我是这样的代码,出现了大部分的错误

    进行调试:

    我发现在接下来的调试中我的第一次循环没有a,所以不存在,也不能输入

     

    并且输入2一直停留在scanf;

     

    于是我在循环语句前面加了“scanf("%d",&a);”

    改正之后

    第10次作业    7-1 统计素数并求和 

    #include <stdio.h>
    int main(void)
    {
      int m,n,i,sum,count,t,a;
      sum=0;
      count=0;
      scanf("%d %d",&m,&n);
      for(a=m;a<=n;a++){
        t=a-1;
        for(i=2;i<=t;i++){
          if(a%i==0)break;
        }
        if(i>t&&a!=1){
          count++;
          sum=sum+a;
        }
        }
      printf("%d %d
    ",count,sum);
      return 0;
    }

    2.解题思路:

    (1).题目算法:

    第一步:定义区间7个整数型变量:最小值m,最大值n,素数的和sum,素数的个数count,i,t以及在区间(m,n)内的a;给sum赋值0;给count赋值0;

    第二步:输入m,n两个值;

    第三步:进入“for”循环,把m赋值给a,当a<=n时t=a-1,进入内循环i=2,i<=t,如果a%i的余数等于0的话跳出内循环,否则继续内循环直至i>t;当i>t与a不等于1时,count加1,sum加a,a+1;直至a>n结束循环

    第四步:输出素数的个数并且素数的总和;

     (2).流程图:

    3、调试过程遇到的问题及其解决方法:

    首先我是这样的代码:

    出现了部分错误,看提示时m=n=素数时出错,于是我进行了调试:

     

    无法进行下去,我发现a还不可以等于1;这样就能运行下去了;

     

     

    总结:这几周我们主要学习了for循环语句的嵌套和学了一些自定义函数的代码,基本能解决简单的几个for语句内外循环嵌套的问题了。

       再是区分while与for不同的用法以及在不同的条件下对它们的不同使用。

    难点:主要是for语句的嵌套以及子函数的写法,比如子函数中的return是带着什么回到主函数的,函数类型要与return变量保持一致,这些在

       写代码时都要特别的注意。

       for语句使用次数多了之后容易搞混淆。

    措施:多读代码,搞清楚for语句中的内循环

       多使用自定义函数解题

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

       https://www.cnblogs.com/nansu/p/10035866.html

        https://www.cnblogs.com/DX552ZYM557/p/10028972.html

  • 相关阅读:
    python命令行工具模块-click
    python项目代码打包成Docker镜像
    背包九讲
    秒杀项目的3个奇数问题:并发队列的选择,请求接口的合理设计,高并发下的数据安全
    java类加载过程
    索引失效
    java面试
    进程间通信
    HashMap在Jdk1.7和1.8中的实现
    十大排序算法
  • 原文地址:https://www.cnblogs.com/a-b-c-d-e1/p/10035492.html
Copyright © 2011-2022 走看看