第三次作业

作业要求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

原文地址:https://www.cnblogs.com/a-b-c-d-e1/p/10035492.html