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

第十一周------第六次作业

6-1 求1到100的和 

本题要求编写程序,计算表达式 1 + 2 + 3 + ... + 100 的值。

代码:

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

解题思路:

1、定义两个整型变量i,sum;

2、判断循环初值以及循环结束条件;

3、打印输出sum;

流程图:

 

调试及运行:

 

 调试过程未发现错误

运行结果正确

第十二周------ 第九次作业

 求整数的位数及各位数字之和 

对于给定的正整数N,求它的位数及其各位数字之和。

代码:

#include <stdio.h>
int main(void)
{
  int digit,number,sum,count;
  scanf("%d",&number);
  count = 0;
  if(number<0){
    number=-number;
  }
do{
    digit = number % 10;
    number  = number / 10;
    count ++;
    sum=sum+digit;
 } while(number!=0);
 printf("%d %d\n",count,sum);
 return 0; 
}

解题思路:

1、定义4个整型变量,给其中一个变量number的输入初值;

2、根据题意设置循环结束条件及运算公式(求整数的各位数字之和则需要使用求余运算);

3、输出位数count,各位数字之和sum;

流程图:

 

调试过程及问题:

正确运行的结果应该是输出2和7,而实际却输出了2和-7;

调试过程如下:

调试之后我发现当number<0时,应先在进入循环之前使用if语句保证number为正数;

 正确运行过程及调试如下:

 第十三周------第七次作业

7-3 统计学生平均成绩与及格人数 

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

代码:

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

解题思路:

1、定义解题所需变量;

2、根据题意设置循环结束条件;

3、使用if语句加一个计数器统计及格人数;

4、输出的average要求是浮点型,而sum和N都是整型,因此最后输出时需要sum*1.0/N;

流程图:

 调试过程及问题:

 第一次运行时没有考虑到N=0的情况,N=0时N不能作为分母,因此average无法计算出,导致部分正确;

 

调试过程如下:

 

调试发现错误后,我使用if-else语句把N=0和N>0两种情况进行讨论;

 再次进行调试:

运行过程如下:

运行结果都正确;

个人总结这几周的主要学习各种各样的循环语句,这是一个难点(在哪一步设置循环,循环结束的条件是什么,嵌套循环怎么使用等等),但同时也是一个重点,因为在以后的学习中接触的最多的就是循环,经过这几周课堂上的学习,我弄懂了for循环,while循环与do-while循环的区别与使用,同时也感受到c语言的精深。

 代码行数及博客字数:

 已评论博客链接:

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

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

https://www.cnblogs.com/freedomjdp/p/9979139.html