题目1:交错数列的前N项和

实验代码:

#include <stdio.h>
#include <math.h>
int main()
{
  int n,a=1,b=1,i=1;
  double sum=0.0;
  scanf("%d",&n);
  while(i<=n){
    sum=sum+1.0*a/b*pow((-1),i+1);
    i++;
    a=a+1;
    b=b+2; 
  }
  printf("%.3lf",sum);
  return 0;
}

设计思路:

1.定义分子a,分母b,循环变量i,定义浮点数加和为sum,并使输入的值n可以被赋值。

2.在i<=n的情况下开始执行循环,通过观察可以得出,分子每次+1,分母每次循环+2,根据规律即可输出加和sum的值。

调试过程:

在第一次提交过程中,没有输入#include<math.h>,使得提交失败,而后几次的失败对我来讲有点莫名其妙,我只是把等号左右的数或字母留了一个空格,输出的结果也是正确的,但是在pta的提交过程中则是始终错误,是不是有什么特殊的限制我到现在都没有懂,而去掉那一个空格的位置后,代码不变,其提交的结果就变成了正确,至少我有点儿摸不着头脑。

流程图:

 

题目2:统计平均成绩及及格人数

实验代码:

#include<stdio.h>
int main ()
{
    int a,b,c=0,d=1,sum=0;
    float Ave;
    scanf("%d",&a);
    if(a !=0)
    {
        while(c<=a)
        {
            scanf("%d",&b);
            if(b>60)
            {
                d = d+1;
             } else if(b<60)
             {
                 d = d + 0;
             }
             sum = sum + b;
             c = c + 1;
        }
        Ave = (sum+0.05) / a;
    }
    else if(a==0)
    {
        Ave = 0;
        d = 0;
    }
    printd("Ave = %.1f\n count = %d",Ave,d);
    return 0;
}

 

设计思路:

1.定义出学生成绩的个数a,成绩b,循环次数c,及格人数d以及成绩总和sum,并定义浮点数平均值Ave。

2.输入a后判断a是否为零,不为零则进入循环,为零则输出平均成绩和及格人数都为0.

3.当a开始循环后,看成绩b的数值,若b>60,则及格人数加1,反之则反之,最后再进行成绩总和的计算以及平均值的计算。

调试过程:

首先,我莫名其妙的遇到了一个问题 [Error] ld returned 1 exit status,在百度上搜索,答案是有程序在运行或者有防火墙之类的,但是跟我的状况都不符合,我也是这直接把代码放在pta上进行编译测试,但是直接得到了编译错误的答案,很是摸不到头脑。在车老师的帮助下,问题得到了解决,只是错敲了printd,不吐槽百度,这是我个人代码量不够的问题,我会加强练习。其余在代码上的问题就没有什么困难了。

流程图:

 

Git地址:https://git.coding.net/jz19990201lkx/At-firstly.git

 

学习总结:

在这一周的学习中,学习了while,do...while,for等语句,我觉得我掌握的还不是很扎实,需要加强的地方还有很多,,就比如在实践代码的输入量上就是我欠缺的一个大关,本身就掌握的不是很好,再没有多加练习,欠下的债就会更多,在下周的学习中我会注重这方面的练习的!

学习进度表:

 

 作业点评:

1.于耀凇:http://www.cnblogs.com/jsjyys/p/7826828.html

2.董欣:http://www.cnblogs.com/dx2017/p/7809786.html

3.张国庆:http://www.cnblogs.com/zgq947/p/7856360.html