zoukankan      html  css  js  c++  java
  • 第七周PTA作业

    第一题:

    #include<stdio.h>
    int main()
    {
        int i=1;
        int sum=0;
        while(i<=100){
            sum=sum+i;
            i++;
        }
        printf("sum = %d
    ",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
    ",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
    ");
          else
          printf("average = %.1f
    ",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

     

     

  • 相关阅读:
    cocos3 单击
    cocos3 帧动画
    cocos3 动作和帧动画
    cocos3 场景切换特效
    cocos3 场景切换
    cocos3 error C2440
    c++ 匿名函数
    【leetcode】生成每种字符都是奇数个的字符串
    【leetcode】山羊拉丁文
    【leetcode】字符串的最大公因子
  • 原文地址:https://www.cnblogs.com/wangzhiheng/p/7806065.html
Copyright © 2011-2022 走看看