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

     

     

  • 相关阅读:
    c:forTokens标签循环输出
    jsp转long类型为date,并且格式化
    spring中@Param和mybatis中@Param使用区别(暂时还没接触)
    734. Sentence Similarity 有字典数组的相似句子
    246. Strobogrammatic Number 上下对称的数字
    720. Longest Word in Dictionary 能连续拼接出来的最长单词
    599. Minimum Index Sum of Two Lists两个餐厅列表的索引和最小
    594. Longest Harmonious Subsequence强制差距为1的最长连续
    645. Set Mismatch挑出不匹配的元素和应该真正存在的元素
    409. Longest Palindrome 最长对称串
  • 原文地址:https://www.cnblogs.com/wangzhiheng/p/7806065.html
Copyright © 2011-2022 走看看