用天梯赛打开暑假生活第七天

发布时间 2023-06-26 22:52:44作者: 寒心小呆

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

开始时间2023-06-26 21:26:45

结束时间2023-06-26 22:49:23

前言:哈哈哈哈,呜呼!今天的分享看起来还不错,不知道大家觉得怎么样,嘿嘿。

L1-031 到底是不是太胖了

一、题目编号及题目说明

二、程序功能测试及说明

  给出待检测人数,并判断对应身高体重下该人的身体情况。

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

  首先以n吸收待检测人数,循环内部吸收身高与体重,计算标准体重值并进行比较,ifelse结构三次比较最后输出。

四、程序源代码

#include<bits/stdc++.h>
using namespace std;
int n, h, w;
double b;
int main()
{
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> h >> w;
        b = (h - 100) * 0.9;
        if(fabs(w - b * 2) < b * 2 * 0.1)
        
            cout << "You are wan mei!" << endl;
        
        else if(w >= b * 2 * 1.05)// 扩大
        
            cout << "You are tai pang le!" << endl;
        
        else
        
            cout << "You are tai shou le!" << endl;
        
    }
    return 0;
}
    

 五、题目评分

 L1-032 Left-pad

一、题目编号及题目说明

二、程序功能测试及说明

  根据输入的整数n、字符p和字符串s,进行一系列操作来输出符合条件的字符串。

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

  1. 获取用户输入的整数n和字符p。
  2. 使用cin.ignore()函数来避免后续的getline函数读取到空串中。
  3. 使用getline(cin, s)函数来读取一行输入,并将其保存在字符串s中。
  4. 获取字符串s的长度l。
  5. 如果字符串s的长度大于等于n,则进入第一个分支:
    • 遍历字符串s,从索引(l-n)到(l-1),输出对应的字符。
  6. 如果字符串s的长度小于n,则进入第二个分支:
    • 使用循环输出n-l个字符p。
    • 输出字符串s。
  7. 程序结束。

四、程序源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    char p;
    cin>>n>>p;
        cin.ignore();//避免getline函数读取到空串中
    string s;
    getline(cin,s);
    int l=s.length();
    //printf("%d",l);
    int i=0;
    if(l>=n)
    {
        //printf("1");测试是否进入选择结构
        for(i=l-n;i<l;i++)
        {
            //printf("1");测试是否进入循环
            printf("%c",s[i]);
        }
    }
    else {
        for(i=0;i<(n-l);i++)
        {
            printf("%c",p);
        }
        cout<<s<<endl;
    }
    
}

五、题目评分

 L1-033 出生年

一、题目编号及题目说明

二、程序功能测试及说明

  根据输入的出生年份y和目标年份中不同数字的个数n,找到满足条件的年份,并输出该年份和对应的年龄。

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

  1. 获取用户输入的出生年份y和目标年份中不同数字的个数n。
  2. 定义一个变量x,将其赋值为出生年份y,用于记录年龄。
  3. 进入一个无限循环,每次循环都会增加年份y的值并进行以下操作:
    • 将年份y拆分为四个位数,并存储在数组a中。
    • 创建一个大小为10的数组num,并初始化为0,用于记录每个数字出现的次数。
    • 遍历数组a,统计每个数字出现的次数。
    • 遍历数组num,统计不同数字的个数。
    • 如果不同数字的个数等于目标个数n,则满足条件,输出年龄(y - x)和年份y,并跳出循环。
    • 否则,增加年份y的值,进入下一轮循环。
  4. 程序结束。

四、程序源代码

#include <bits/stdc++.h>
 
using namespace std;
 
const int N = 3e3 + 7;
int a[N];
int num[N];
int main()
{
    int y, n;
    cin >> y >> n;
    int x = y;
    while(1)
    {
        int m = y;
        a[0] = m/1000;
        a[1] = m/10/10%10;
        a[2] = m/10%10;
        a[3] = m%10;
        int i;
        int t = 4;
        for(i = 0; i < t; i ++)
            num[a[i]] ++;
        int sum = 0;
        for(i = 0; i < 10; i ++)
        {
            if(num[i] >= 1) sum ++;
        }
        if(sum == n) break;
        for(i = 0; i < 10; i ++) num[i] = 0;
        y ++;
    }
    printf("%d %04d\n", y - x, y);
    return 0;
}

五、题目评分

 总结:让我停滞的是我看到的东西,而不是我身上的感情......

每日一mo:看到某些东西还是会后悔,不是么,我说的不是2023界喜报.......