第七周作业

一、
7-1 求1到100的和
1、实验代码:

int main()
{
  int sum=0;
  int i=1;
  while(i<=100)
  {
    sum=sum+i;
    i++;
  }
  printf("sum = %d\n",sum);
  return 0;
}

2、设计思路:
(1)第一步:定义两个整数变量i和sum,令i的初始值为1,sum的初始值为0;
(2)第二步:采用while循环语句,当变量i满足“i<=100”时,进行sum=sum+i;i++;的循环来计算sum的值;
(3)第三步:直到i不再满足“i<=100”的条件时,输出对应的sum的值。
3,、流程图:
1238904-20171112192602856-1872930916.png
4、PTA提交列表:
1238904-20171112193027497-430387718.png
5、本题出现的问题与解决方法:
错误截图:1238904-20171117214107546-1335596826.png
出现的错误:printf输出的格式与题目要求不符。
解决方法:在printf输入的=前后加上空格。(本题出错在于我审题不细造成的。)
7-2 求奇数分之一序列前N项和
1、实验代码:

int main()
{
  int N;
  scanf("%d",&N);
  double m,sum=0;
  int i=1;
  while(i<=N)
  {
    m=1.0/(2*i-1);
    sum=sum+m;
    i=i+1;
  }
  printf("sum = %.6f\n",sum);
  return 0;
}

2、设计思路:
(1)第一步:定义一个整形变量N,浮点型变量m,sum;
(2)第二步:运用到while语句1 + 1/3 + 1/5 + ... 的前N项之和,输入N的值来限制i的取值范围,确定循环的次数;
(3)第三步:当i<=N时,一直进行sum=sum+m;m=1.0/(2*i-1);i+1;的循环;
(4)第四步:当i不满足"i<=N"时,输出得到的sum的值,结果保留6位。
3、流程图:
1238904-20171117000252671-1530021732.png
4、PTA提交列表:
1238904-20171116165327749-1398415749.png
5、本题出现的问题与解决方案:
本题在做的时候未出现问题。
7-3 求交错序列前N项和
1、实验代码:

int main()
{
  int N,i=1,x=1,y=1,z=1;
  scanf("%d",&N);
  double m,sum=0;
  while(i<=N)
  {
    m=x*z*1.0/y;
    sum=sum+m;
    x=-x;
    z=z+1;
    i=i+1;
    y=y+2;
  }
  printf("%.3lf\n",sum);
  return 0;
}

2、设计思路:
(1)第一步:定义5个整型变量N,i,x,y,z,两个浮点型变量m,sum;
(2)第二步:运用while语句,来求交错序列前N项和,输入N来限制i的取值范围,确定循环次数;
(3)第三步:当i<=N时,进行m=xz1.0/y;sum=sum+m;x=-x;z=z+1;i=i+1;y=y+2;的循环;
(4)第四步:当i不满足“i<=N”时,输出该值下sum所对应的值,结果保留3位。
3、流程图:
1238904-20171118165036452-669958323.png
4、PTA提交列表:
1238904-20171116185149968-1930735509.png
5、本题出现的问题与解决方案:
错误截图: 1238904-20171117235535890-353879340.png
出现的问题:出现了一个很低级的错误,scanf中忘记加&。
解决方法:在scanf中加上&,在做题时专注程度不够。
7-4 找出最小值
1、实验代码:

int main()
{
  int min,n,i,m;
  scanf("%d %d",&n,&m);
  min=m;
  for(i=1;i<n;i++)
  {
    scanf("%d",&m);
    if(min>m)
    min=m;
  }
  printf("min = %d\n",min);
  return 0;
}

2、设计思路:
(1)第一步:定义4个整型变量min,n,i,m,将整型变量n,m输入;
(2)第二步:将m输入的第一个数据赋给min,给min一个初始值,运用for语句,输入n确定循环次数;
(3)第三步:当i<=n时,一直循环输入要比较的数据;
(4)第四步:如果输入的m比min小,则将此时m的值赋给min,直到i不满足“i<n”的条件时,输出的值就最小的,否则,第一个m的值就是最小的。
3、流程图:
1238904-20171118140342109-609935021.png
4、PTA提交列表:
1238904-20171116190543859-1585970538.png
5、本题出现的问题与解决方案:
错误截图: 1238904-20171118140909937-1634310868.png
出现的问题:最后的程序少了一个赋值命令,导致输出的最小值编程了0。
解决方法:在输出最小值之前加上一个”min=m”命令。
7-5 统计学生平均成绩与及格人数
1、实验代码:

int main()
{
  int i,N;
  double x=0,grade;
  int count=0;
  scanf("%d",&N);
  for(i=1;i<=N;i++)
  {
    scanf("%lf",&grade);
    if(grade>=60)
    count=count+1;
    x=x+grade;
  }
  if(N==0)
  printf("average = 0.0\n");
  else
  printf("average = %.1f\n",x/N);
  printf("count = %d",count);
  return 0;
}

2、设计思路:
(1)第一步:定义3个整型变量i,N,count,其中count的初始值为0,两个浮点型变量x,grade,令x的初始值为0;
(2)第二步:输入N,运用for,if else语句,通过N来确定循环次数;
(3)第三步:输入浮点型变量grade,判断grade的大小;
(4)第四步:当N不等于0时,采用for循环语句求得average和count的值,按照题目要求输出所有成绩总和与及格人数,当n等于0时,直接根据题目要求输出average,和count的值。
3、流程图:
1238904-20171118173944843-1890966176.png
4、PTA提交列表:
1238904-20171116192532234-5039126.png
5、本题出现的问题与解决方案:
错误截图: 1238904-20171118153337827-1347255560.png
出现的问题:在DVC++上没有显示出问题,但是在PTA上显示编译错误,出现的问题很低级,用double定义的数,在输入的时候用了“f”而没用“lf”。
解决方法:将scanf中的“f”改成“lf”。
二、
上传coding截图:1238904-20171116221751671-1941513192.png
Git地址:https://coding.net/u/c289716425/p/123/git
三、
学习内容:
本周学习了for,do while,while循环语句。虽然它们的结构看似简单,但运用到具体题目中还是有一定难度的,相比while与do while的循环结构而言,for语句较为简单,但是应用起来却并不是很简单。学习难点就是如何用for语句去取代较为复杂的while与do while语句,以及循环体运算公式的确定和如何控制循环的结束。本周的PTA作业相较之前的作业来说难度加大了很多,在完成一些难题的时候不得不向同学请教,洗完我可以通过接下来的练习来解决这个难题。
四、
点评作业:
(1)曹琪:http://www.cnblogs.com/blueblog6/p/7818648.html
(2)胡俊鲜:http://www.cnblogs.com/123456hjx/p/7823616.html
(3)何宗彦:http://www.cnblogs.com/hezongyan/p/7812104.html
五、
学习进度条与折线图:
学习进度条:1238904-20171118173823484-990320258.png
折线图:1238904-20171118173806234-1488973652.png

转载于:https://www.cnblogs.com/1999-cyc/p/7823469.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值