L1-054~L1-056

题目

“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。
输入格式:
输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。
输出格式:
输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong dao le,然后再用输入指定的字符将其输出。
输入样例 1:
$ 9
@ @@@@@
@@@ @@@
@ @ @
@@@ @@@
@@@ @@@@@
@@@ @ @ @
@@@ @@@@@
@ @ @ @
@ @@@@@
输出样例 1:
$$$KaTeX parse error: Can't use function '$' in math mode at position 3: $̲ $ $ $ $ $ $
$ $ $ $ $ $
$ $
$ $ $
$ $
$$$$$ $
输入样例 2:
& 3
@@@
@
@@@
输出样例 2:
bu yong dao le
&&&
&
&&&

代码
#include <iostream>
#include <iomanip>
#include <string.h>
using namespace std;
int main()
{
    char cha, tmp_cha[200];
    int data[200][200], num;
    cin >> cha;
    cin >> num;
    cin.get();
    for(int a = 0; a < num; a++)
    {
        memset(data[a],0,sizeof(data[a]));
    }
    for(int tmp = 0; tmp < num; tmp++)
    {
        cin.getline(tmp_cha,200);
        for(int tmp1 = 0; tmp1 < num; tmp1++)
        {
            if(tmp_cha[tmp1] == ' ')
            {
                data[tmp][tmp1] = 0;
            }
            else if(tmp_cha[tmp1] == '@')
            {
                data[tmp][tmp1] = 1;
            }
        }
    }
    int sign = 0;
    for(int tmp = 0; tmp < num; tmp++)
        for(int tmp1 = 0; tmp1 < num; tmp1++)
            if(data[tmp][tmp1] != data[num - 1 - tmp][num - 1 - tmp1])
            {
                sign = 1;
                break;
            }
    if(sign == 0)
        cout << "bu yong dao le" <<endl;
    for(int tmp = num - 1; tmp >= 0; tmp--)
    {
        for(int tmp1 = num - 1; tmp1 >= 0; tmp1--)
            if(data[tmp][tmp1] == 1)
                cout << cha;
            else
                cout << " ";
        cout <<endl;
    }
}

题目

某电视台的娱乐节目有个表演评审环节,每次安排两位艺人表演,他们的胜负由观众投票和 3 名评委投票两部分共同决定。规则为:如果一位艺人的观众票数高,且得到至少 1 名评委的认可,该艺人就胜出;或艺人的观众票数低,但得到全部评委的认可,也可以胜出。节目保证投票的观众人数为奇数,所以不存在平票的情况。本题就请你用程序判断谁是赢家。
输入格式:
输入第一行给出 2 个不超过 1000 的正整数 Pa 和 Pb,分别是艺人 a 和艺人 b 得到的观众票数。题目保证这两个数字不相等。随后第二行给出 3 名评委的投票结果。数字 0 代表投票给 a,数字 1 代表投票给 b,其间以一个空格分隔。
输出格式:
按以下格式输出赢家:
The winner is x: P1 + P2
其中 x 是代表赢家的字母,P1 是赢家得到的观众票数,P2 是赢家得到的评委票数。
输入样例:
327 129
1 0 1
输出样例:
The winner is a: 327 + 1

代码
#include <iostream>
using namespace std;
int main()
{
    int a = 0, b = 0, data[3] = {0,0,0};
    int num[2] = {0,0};
    cin >> a >> b >> data[0] >> data[1] >> data[2];
    num[data[0]]++;
    num[data[1]]++;
    num[data[2]]++;
    if(num[0] == 3)
        cout << "The winner is a: " << a << " + " << num[0];
    else if(num[1] == 3)
        cout << "The winner is b: " << b << " + " << num[1];
    else if(a > b)
        cout << "The winner is a: " << a << " + " << num[0];
    else
        cout << "The winner is b: " << b << " + " << num[1];
}
题目

一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。
输入格式:
输入在第一行给出一个正整数N(≤10​4​​)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。
输出格式:
在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,其间以空格分隔。题目保证赢家是唯一的。
输入样例:
7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62
输出样例:
22 Amy

代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    float all, data[10100], all_num = 0;
    string name[10100];
    cin >> all;
    for(int tmp = 0; tmp < all; tmp++)
    {
        cin >> name[tmp];
        cin >> data[tmp];
        all_num += data[tmp];
    }
    all_num = (all_num/all)/2;
    float min_num = 100;
    int winner = 0;
    for(int tmp = 0; tmp < all; tmp++)
    {
        if(abs(data[tmp] - all_num) < min_num)
        {
            min_num = abs(data[tmp] - all_num);
            winner = tmp;
        }
    }
    cout << (int)all_num << " " << name[winner];
}

点击俺返回目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值