用天梯赛打开暑假生活的第十一天

发布时间 2023-07-05 14:51:59作者: 寒心小呆

从坐牢到入门的程序设计(10)

开始时间2023-07-05 14:01:17

结束时间2023-07-05 14:39:11

前言:唔呀呼!

L1-050 倒数第N个字符串

一、题目编号及题目说明

二、程序功能测试及说明

  输入字符串长度和倒数多少个数字,输出相应字符串。

三、程序设计思路及结构说明

  首先读取两个整数m和n,m表示字母串的长度,n表示要转换的数字。创建一个字符数组a,用于保存字母串。将数组a中的所有元素初始化为字母'z'。循环m次,将数组a的前m个元素赋值为字母'z'。再次循环m次,计算并赋值变量b和c的值。变量b表示26的幂次方,即26^(m-i-1)。变量c表示第i个字母的值,通过公式(n-1)/b%26计算。将字母a[i]减去c,并输出字符a[i]。输出换行符。返回0,表示程序正常结束。

四、程序源代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int m,n;
    cin>>m>>n;
    
    char a[6];
    int i,b,c;
    for(i=0;i<m;i++){
        a[i]='z';
    }
    for(i=0;i<m;i++){
        b=pow(26,m-i-1);
        c=(n-1)/b%26; 
        a[i]=a[i]-c;
        printf("%c",a[i]);
    }
    printf("\n");
    return 0;
}

五、题目评分

 L1-051 打折

一、题目编号及题目说明

二、程序功能测试及说明

  输入两个数,第一个数为商品原价,第二个数为打折数目,最后输出打折后的价格。

三、程序设计思路及结构说明  

首先读取两个浮点数a和b。创建一个浮点数变量c。将c赋值为a乘以b再除以10。使用printf函数以"%.2f"的格式输出变量c,保留两位小数。返回0,表示程序正常结束。

四、程序源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    float a,b;
    cin>>a>>b;
    float c;
    c=a*b/10;
    printf("%.2f\n",c);
    return 0;
}

五、题目评分

 L1-052 2018我们要赢

一、题目编号及题目说明

二、程序功能测试及说明

  输出两行字符串。

三、程序设计思路及结构说明

无输入直接输出两行字符。

四、程序源代码

include<bits/stdc++.h>
using namespace std;
int main()
{
    printf("2018\nwo3 men2 yao4 ying2 !\n");
    return 0;
}

五、题目评分

 L1-053 电子汪

一、题目编号及题目说明

二、程序功能测试及说明

  根据输入的两个数的和输出Wang!。

三、程序设计思路及结构说明

吸收两个数并求和,然后使用循环打印“Wang!”,次数为和。

四、程序源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    int c=a+b,i=0;
    for(i=0;i<c;i++)
    {
        printf("Wang!");
    }
    printf("\n");
    return 0;
}

五、题目评分

 L1-054 福到了

一、题目编号及题目说明

二、程序功能测试及说明

  读取一个字符和一个整数,然后根据输入的内容生成一个图案。

三、程序设计思路及结构说明

首先定义了一个字符变量 c 和一个整数变量 n。
然后定义了一个字符串数组 s,大小为 111。
使用 scanf 函数读取一个字符和一个整数,并将其赋值给 c 和 n。
使用 getchar 函数读取换行符。
使用 getline 函数依次读取 n 行字符串,存入字符串数组 s 中。
定义一个布尔变量 isSame 并初始化为 true。
进行两层循环遍历字符串数组 s,比较对应位置上的字符是否相同,若有不相同的字符,则将 isSame 置为 false。
如果所有字符都相同,则输出提示信息 "bu yong dao le"。
再次使用两层循环遍历字符串数组 s,并根据字符的空格与否输出相应的字符或空格。
返回 0。

四、程序源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    char c;
    int n;
    string s[111];
    scanf("%c %d",&c,&n);
    getchar();
    for(int i=0;i<n;i++){
        getline(cin,s[i]);
    }
    bool isSame =true;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            int i2=n-i-1;
            int j2=n-j-1;
            if(s[i2][j2]!=s[i][j]) isSame=false;
        }
    }
    if(isSame){
        printf("bu yong dao le\n");
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(s[i][j]==' ') printf(" ");
                else printf("%c",c);
            }
            printf("\n");
        }
        return 0;
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            int i2=n-i-1;
            int j2=n-j-1;
            if(s[i2][j2]==' ') printf(" ");
            else printf("%c",c);
        }
        printf("\n");
    }
    return 0;
}
 

五、题目评分

 L1-055 谁是赢家

一、题目编号及题目说明

二、程序功能测试及说明

  这段代码是一个简单的比较和计算程序。它接收输入的pa和pb,以及a、b、c三个数,然后进行一些比较和计算,最后输出结果。

三、程序设计思路及结构说明

代码会计算count = a + b + c,然后根据条件判断进行输出。如果pa大于pb且count不等于3,则输出"The winner is a: pa + (3 - count)";否则输出"The winner is b: pb + count"。

四、程序源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int pa,pb;
    int count,a,b,c;
    cin>>pa>>pb>>a>>b>>c;
    count=a+b+c;
    if(pa>pb&&count!=3)
    {
        printf("The winner is a: %d + %d\n",pa,3-count);
    }
    else{
        printf("The winner is b: %d + %d\n",pb,count);
    }
    return 0;
}
 

五、题目评分

 总结:别看时间这么短,其实是中午吃饭前写好了代码。

每日一mo:如果连你都烦我,那我的心事该跟谁说....