zoukankan      html  css  js  c++  java
  • PTA数据结构第一次作业

    7-1 统计学生平均成绩与及格人数(15 分)

    本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

    输入格式:

    输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。

    输出格式:

    按照以下格式输出:

    average = 成绩均值
    count = 及格人数
    

    其中平均值精确到小数点后一位。

    输入样例:

    5
    77 54 92 73 60
    

    输出样例:

    average = 71.2
    count = 4
    
    #include<stdio.h>
    int main()
    {
      int N,ia,count,sum,i;
      float average;
      scanf("%d",&N);
      sum=0;
      count=0;
      average=0;
      for(i=0;i<N;i++)
      {
        scanf("%d",&ia);
        sum=sum+ia;
        if(ia>=60)
        {
          count++;
        }
      }
      if(N==0)
      {
        printf("average = 0.0
    ");
      }
      else if(N>0)
      {
        average=sum/(float)N;
        printf("average = %.1f
    ",average);
      }
      printf("count = %d
    ",count);
      return 0;
    }

    7-2 统计字符(15 分)

    本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

    输入格式:

    输入为10个字符。最后一个回车表示输入结束,不算在内。

    输出格式:

    在一行内按照

    letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
    

    的格式输出。

    输入样例:

    aZ &
    09 Az
    

    输出样例:

    letter = 4, blank = 3, digit = 2, other = 1
    
    #include<stdio.h>
    int main()
    {
      char str[10];
        int i=0,letter=0,blank=0,digit=0,other=0;
        while(i<10)
        {
          str[i++]=getchar();
        }
        for(i=0;i<10;i++)
        {
            if(str[i]==' ')
            {
              blank++;
            }
            else if(str[i]=='
    ')
            {
              blank++;
            }
            else if(str[i]>='0'&&str[i]<='9')
            {
              digit++;
            }
            else if(str[i]>='A'&&str[i]<='Z')
            {
              letter++;
            }
            else if(str[i]>='a'&&str[i]<='z')
            {
              letter++;
            }
            else 
            {
              other++;
            }
        }
      printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
      return 0;
    }

    7-3 跟奥巴马一起画方块(15 分)

    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

    输入格式:

    输入在一行中给出正方形边长N3N21)和组成正方形边的某种字符C,间隔一个空格。

    输出格式:

    输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。

    输入样例:

    10 a
    

    输出样例:

    aaaaaaaaaa
    aaaaaaaaaa
    aaaaaaaaaa
    aaaaaaaaaa
    aaaaaaaaaa
    
    #include<stdio.h>
    int main()
    {
      int i,j;
      int n;
      char c;
      scanf("%d",&n);
      getchar();
      scanf("%c",&c);
      for(i=1;i<=(int)n/2.0+0.5;i++)
      {  for(j=1;j<=n;j++)
        {
          printf("%c",c);
        }
      printf("
    ");
      }
      return 0;
    }

    7-4 特殊a串数列求和(20 分)

    给定两个均不超过9的正整数an,要求编写程序求a+aa+aaa+++aaana)之和。

    输入格式:

    输入在一行中给出不超过9的正整数an

    输出格式:

    在一行中按照“s = 对应的和”的格式输出。

    输入样例:

    2 3
    

    输出样例:

    s = 246
    
    #include<stdio.h>
    int main()
    {
        int i=0,s=0,a,tmp=0,n;
        scanf("%d %d",&a,&n);
        tmp = a;
        for(i = 0; i < n; i++)
        {
            s+=tmp;
            tmp=tmp*10+a;
        }
        printf("s = %d
    ",s);
        return 0;
    }

    7-5 统计素数并求和(20 分)

    本题要求统计给定整数MN区间内素数的个数并对它们求和。

    输入格式:

    输入在一行中给出两个正整数MN1MN500)。

    输出格式:

    在一行中顺序输出MN区间内素数的个数以及它们的和,数字间以空格分隔。

    输入样例:

    10 31
    

    输出样例:

    7 143
    
    #include<stdio.h>
    int fun(int i)
    {
        int j;
        if(i<=0)
        {
          return -1;
        }
        else if(i<2)
        {
          return 1;
        }
        else
        {
            for(j=2;j<i;j++)
            {
                if(i%j==0)
                {
                    return 1;
                }
            }
            return 0;
        }
    }
    int main()
    {
      int M,N,i,j,s,n;
      s=0;
      n=0;
      scanf("%d %d",&M,&N);
      if(M==N)
      {
        i=M;
        if(fun(i)==0)
        {
            n=1;
            s=M;
        }
        else if(fun(i)==1)
        {
            n=0;
            s=0;
        }
      }
      else if(M!=N)
      {
        for(i=M;i<=N;i++)
        {
            if(fun(i)==0)
            {
                n++;
                s=s+i;
            }
        }
      }
      printf("%d %d
    ",n,s);
      return 0;
    }

    7-6 循环的统计(15 分)

    在墙角堆放着一堆完全相同的正方体小木块,从上往下数起,第一层是1块,第二层是3块,第三层是6块…… 因为木块堆得实在是太有规律了,你只要知道它的层数就可以计算所有木块的数量了。

    输入格式:

    只有一个整数 n ,表示这堆小木块的层数,已知1 <= n <= 100 。

    输出格式:

    只有一个整数,表示这堆小木块的总数量。

    输入样例:

    5
    

    输出样例:

    35
    
    #include<stdio.h>
    int sum(int i);
    int main()
    {
      int n,i,s=0;
      scanf("%d",&n);
      for(i=1;i<=n;i++)
      {
        s=s+sum(i);
      }
      printf("%d
    ",s);
      return  0;
    }
    int sum(int i)
    {
        if(i==1)
        {
            return 1;
        }
        else
        {
        return  i+sum(i-1);
        }
    }

    7-7 求n以内最大的k个素数以及它们的和(20 分)

    本题要求计算并输出不超过n的最大的k个素数以及它们的和。

    输入格式:

    输入在一行中给出n(10n10000)和k(1k10)的值。

    输出格式:

    在一行中按下列格式输出:

    素数1+素数2+…+素数k=总和值
    

    其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。

    输入样例1:

    1000 10
    

    输出样例1:

    997+991+983+977+971+967+953+947+941+937=9664
    

    输入样例2:

    12 6
    

    输出样例2:

    11+7+5+3+2=28
    
    #include<stdio.h> 
    int fun(int n)
    {
        int i;
        if(n<=0)
        {
          return -1;
        }
        else if(n<2)
        {
          return 1;
        }
        else
        {
            for(i=2;i<n;i++)
            {
                if(n%i==0)
                      {
                    return 1;
                      }
            }
            return 0;
        }
    }
    int main()
    {
        int i,sum=0,n,k;
        scanf("%d %d",&n,&k);
        for(i=n;i>1 && k>0;i--)
        {
            if(fun(i)==0)
            {
                printf("%d",i);
                sum+=i;
                k--;
                if(k!=0&&i>2)
                {
                    printf("+");
                }
                else
                {
                    printf("=%d",sum);
                    break;
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    python--tkinter桌面编程开发--记事本
    Python--面向对象编程
    Python--面向对象编程--时钟实例开发
    Python学习笔记--2--面向对象编程
    Python学习笔记--1
    epoll聊天室的实现
    操作系统--虚拟存储器
    操作系统--存储器管理
    操作系统--分页存储管理中逻辑地址转换为物理地址
    操作系统--处理机调度与死锁
  • 原文地址:https://www.cnblogs.com/xxs812/p/7705546.html
Copyright © 2011-2022 走看看