第七周作业

要求二

(三)题目7-3求交错前N项和

1.实验代码

#include <stdio.h>
int main()
{
  int N,i;
  int flag=-1;
  double s=0;
  scanf("%d",&N);
  for (i=1;i<=N;i++)
  {
    flag=-flag;
    s=s+i/(2.0*i-1.0)*flag;
  }
  printf("%.3lf",s);
  return 0;
}

2.设计思路

(1)主要题目算法

逆推法   求1-2/3+3/5-4/7+...;

.——找出通项公式s=s+i/(2*i-1)乘以(-1)的n次幂;

——(-1)的n次幂不太会就相应换成变量flag,让fiag=-flag循环与公式相乘——把公式放入循环语句中须在(i=1;i<=N;i++)的条件下;

————定义变量N,i,flag=1,浮点型变量s;

(2)流程图

3.本题调试过程中遇到的问题及解决方法。

错误截图

 

遇到的问题:不知道怎样才能输入‘+’ ‘—’连续的循环式子?(在之前我上网查找如何加入指数幂的形式结果还是不对)

解决方法:老师上课的ppt中有提到  在定义一个变量flag,让flag=-flag放在循环语句中就可以实现。

4.本题pta提交列表

(五)统计学生平均成绩及及格人数

1.实验代码

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

2.设计思路

(1)主要题目算法

第一步:定义整型变量N,count,i,grade,浮点型变量average=0,s=;

第二步:(s=s+grade,average=s/N,)式子在i=1;i小于所输入的N;i++的条件循环;

第三步:在循环框中加入条件(grade>=60)的时候count=count+1;

第四步:确定输出条件以及小数点保留几位;

(2)流程图

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

错误截图

遇到的问题:在devc++中编译正确,而在pta中是部分正确。

解决方法:经过自己的反复观察,发现其中要求grade>=60,而我输入grade<60。

4.pta提交列表

要求三(额外作业)

一.  题目7-1  1-100求和

1.实验代码

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

2.设计思路

(1)题目算法

第一步:定义变量sum为总和,i为循环语句中的次数;

第二步:根据题意锁定公式s=s+i;

第三步:i++循环,输出总和sum。

(2)流程图

 

 

3 本题无错误

4.本题pta错误提交列表

二 题目 7-2求奇数分之一序列前N项和

1.实验代码

#include <stdio.h> 
int main()
{
    int n;
    int N=1;
    double sum=0;
    scanf("%d",&n);
    while (N<=n){
        sum=1.0/(2.0*N-1)+sum;
        N=N+1;
    }
    printf("sum = %.6f",sum);
    return 0;
}

2.设计思路

(1)题目算法

第一步:定义变量n(可人为的输入值)sum(总和)N(循环变量);

第二步:在(n<=N)遵循 循环公式(sum=1/(2*N-1)+sum);

第三步:输出sum并且保留小数点六位。

(2)流程图

 

3.本题无提交错误

4本题pta提交列表

三.题目7-4找出最小值

1.实验代码

#include<stdio.h>
int main(void)
{
 int n,i,l,min;
 scanf("%d",&n);
 scanf("%d",&l);
 min=l;
 for(i=1;i<n;i++){
  scanf("%d",&l);
  if(min>l)
  min=l;
 } 
 printf("min = %d",min);
 return 0;
}

2.设计思路

(1)解题思路

第一步:定义变量n,i,l,min;

第二步:在i=1,i<n,i++;的条件下(如果min>l则min=l;

第三步:输出min。

(2)流程图

 

4.pta提交列表

 

 

 

要求四

git地址:https://git.coding.net/hezongyan321/text.git

coding截图

要求五

个人总结

(1)本周学习内容和收获:

1.while 循环;

2.do while循环;

3.for循环;

4.循环的嵌套;

(2)本周所学内容中那些是难点:

do while的循环至少要执行一次;

while循环如果一次不满足条件就不执行;

要求六

我评价的作业

王佳乐

徐敬骑

胡俊鲜

 

折线图

 

表格

 

posted @ 2017-11-11 20:45  何宇诗  阅读(381)  评论(21编辑  收藏  举报