第七周PTA作业

 

第一题:

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

第一步:由题意可得,此题需要使用while循环语句,所以首先定义两个整型变量i=1,和sum=0。

第二步:定义完变量后,使用while语句,设置i的范围小于等于100,并在循环语句中添加sum=sum+i,i++。

第三步:循环一百次后输出结果即可。

PTA输出结果:

DEV C++输出结果:

流程图:

第二题:

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

 

 第一步:由题意可得,此题需要定义两个整型变量i=1,N,和两个双倍精准度变量sum,S。

第二步:利用while语句对s=1.0/(2*i-1),sum=sum+S,i++进行循环,直到i<=N,才结束。

第三步:输入N的值则可得到相应的答案。

PTA结果显示:

错误显示

DEVC++显示:

 

 第三题:

 

 

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

第一步:由题意得,需要定义两个整型变量i,N,设置输入N的语句。

第二步:定义双倍精准度变量sum,和一个flag=-1。

第三步:利用for循环语句第一步使得flag的-1变成1,然后进行运算第一个1.0/(2*i-1)*flag的公式,依次循环到第N次,输出结果。

 

 

 错误截图:

 

 

 

 

 最后正确截图:

 

 

遇到的错误:

1:变量定义的型没有看明白。

2:带小数的没有乘以1.0.

 

 流程图:

 

第四题:

#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;
}

第一步:由题意判断,此题需要定义四个量分别为n,i,l,min,n为输入多少数据,min为最小值。

第二步:利用for循环语句,循环体为在i=1,i<=n的范围内,循环n次,每次输入一个值l,如果min大于l则将l的值赋值给min,以此类推,每次都将小的值赋值给min。

第三步:输入相应的数值,则可得到答案。

PTA结果显示:

DEXC++显示:

流程图:

 

第五题:

 

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

第一步:由题意得,定义三个整型变量i,n,count=0,和两个双倍精准度变量total=0,grade。

第二步:输入n的值,利用for循环语句来求所有成绩的和,并加入一个if条件语句判断输入的值是否大于等于60,如果小于则记做一次次数。

第三步:输入所有成绩,则可得出所有成绩之和,以及不及格人数。

 

 错误:

正确:

流程图:

 

本周学习内容:

1:复习了while,do while,和for循环语句,学习了break,continue语句和flag标志的知识。

难点:

每一个只知识都是难点,我还是需要多加练习才能熟悉的掌握他们。

 

 

评论的人:

1:http://www.cnblogs.com/lin2580/p/7841437.html

2:http://www.cnblogs.com/123456hjx/p/7823616.html

3:http://www.cnblogs.com/hezongyan/p/7812104.html

 

 

 

 

 

 

posted @ 2017-11-09 20:55  汪志恒  阅读(580)  评论(2编辑  收藏  举报