欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

『ACM C++』 PTA 天梯赛练习集L1 | 021-024

程序员文章站 2022-05-18 23:17:34
忙疯警告,这两天可能进度很慢,下午打了一下午训练赛,训练赛的题我就不拿过来的,pta就做了一点点,明天又是满课的一天,所以进度很慢啦~ L1-021 重要的话说三遍 这道超级简单的题目没有任何输入。 你只需要把这句很重要的话 —— “I'm gonna WIN!”——连续输出三遍就可以了。 注意每遍 ......

  忙疯警告,这两天可能进度很慢,下午打了一下午训练赛,训练赛的题我就不拿过来的,pta就做了一点点,明天又是满课的一天,所以进度很慢啦~ 

 

 

------------------------------------------------l1-021----------------------------------------------------------

重要的话说三遍

这道超级简单的题目没有任何输入。

你只需要把这句很重要的话 —— “i'm gonna win!”——连续输出三遍就可以了。

注意每遍占一行,除了每行的回车不能有任何多余字符。

输入样例:

输出样例:

i'm gonna win!
i'm gonna win!
i'm gonna win!

------------------------------------------------l1-021----------------------------------------------------------

 注解:水题,直接for就ac了

#include<stdio.h>

int main()
{
    for(int i = 0;i<3;i++)
        printf("i'm gonna win!\n");
    return 0;
 } 

 

 

------------------------------------------------l1-022----------------------------------------------------------

奇偶分家

给定n个正整数,请统计奇数和偶数各有多少个?

输入格式:

输入第一行给出一个正整n1000);第2行给出n个非负整数,以空格分隔。

输出格式:

在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。

输入样例:

9
88 74 101 26 15 0 34 22 77

输出样例:

3 6

------------------------------------------------l1-022----------------------------------------------------------

注解:水题,一个取模解决。

#include<stdio.h>

int times,ou,ji;
int main()
{
    ou = ji = 0;
    scanf("%d",&times);
    for(int i = 0;i<times;i++)
    {
        int temp;
        scanf("%d",&temp);
        if(temp%2 == 0) ou++;
        else ji++;
    }
    printf("%d %d",ji,ou);
    return 0;
}

 

 

 

------------------------------------------------l1-023----------------------------------------------------------

输出gplt

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按gpltgplt....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按gplt的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:

pctclnglorglrtlhgljklhgfaupewskgt

输出样例:

gpltgpltgltglgll

------------------------------------------------l1-023----------------------------------------------------------

注解:水题,扫个循环就过了。

#include<stdio.h>
#include<string.h>
char temp[10001];
int letter[4];
char out[4] = {'g','p','l','t'};
int main()
{
    scanf("%s",temp);
    for(int i = 0;i<strlen(temp);i++)
    {
        if(temp[i] == 'g' || temp[i] == 'g') letter[0]++;
        else if(temp[i] == 'p' || temp[i] == 'p') letter[1]++;
        else if(temp[i] == 'l' || temp[i] == 'l') letter[2]++;
        else if(temp[i] == 't' || temp[i] == 't') letter[3]++;
    }
    while(1)
    {
        for(int i = 0;i<4;i++)
        {
            if(letter[i] == 0) continue;
            letter[i]--;
            printf("%c",out[i]);
        }
        if(letter[0] == 0 && letter[1] == 0 && letter[2] == 0 & letter[3] == 0) break;
    }
    printf("\n");
    return 0;
}

 

 

 

------------------------------------------------l1-024----------------------------------------------------------

后天

如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。

输入格式:

输入第一行给出一个正整数d(1 ≤ d ≤ 7),代表星期里的某一天。

输出格式:

在一行中输出d天的后天是星期几。

输入样例:

 3

输出样例:

 5

------------------------------------------------l1-024----------------------------------------------------------

注解:水题不解释

#include<stdio.h>

int temp;
int main()
{
    scanf("%d",&temp);
    temp+=2;
    while(temp>7) temp-=7;
    printf("%d\n",temp);
    return 0;
}

 

 

注:如果有更好的解法,真心希望您能够评论留言贴上您的代码呢~互相帮助互相鼓励才能成长鸭~~