专栏文章

P1427

P1427题解参与者 1已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@miojmomu
此快照首次捕获于
2025/12/02 20:17
3 个月前
此快照最后确认于
2025/12/02 20:17
3 个月前
查看原文
呵呵呵呵,也是无语了,上次发的题解审核不通关,这次再发一个,我发现各位大佬的题解对萌新很不友好,所以我打算发发题解支持胡管喔
本题编号P1427---‘小鱼的数字游戏’
呵呵,这题还怪…难的,好吧也不算难,只是代码有一点多呀!
先看题干↓

题目描述

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字 aiai(长度不一定,以 0 结束),记住了然后反着念出来(表示结束的数字 0 就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。
//题目描述还怪幽默的!

输出与输入

一行内输入一串整数,以 0 结束,以空格间隔。
一行内倒着输出这一串整数,以空格间隔。
注意:数字个数不超过 100!!!
好的直接分析好吧↓
首先数组嘛… 可以用vector容器呀!
先定义2个vector容器aba和b!定义大小—reserve()↓
CPP
#include <bits/stdc++.h>//万能头,包含vector,下面写了只是提醒一下。
#include <vector>//头文件
using namespace std;
int main(){
    vector <int> a;//定义一个vector容器
    vector <int> b;//这个是为了存倒序的a数组
    a.reserve(101);//定义大小
    int k,c;//后面要用k,c两变量
好了,现在用forfor循环遍历输入!再在循环里判断a[i]a[i]是否为00若果是的,便将c赋值为i1i-1,k也是的,在这里直接把k赋值为C,然后break——因为前面将a设置为了101的大小,如果不停止,输出会有问题。
CPP
for(int i = 0;i<=100;i++){
    cin >> a[i];
    if(a[i] == 0){
        c = i-1;
        k = c;
        break;//如果if成立,停止for循环。
    }
}
接下来就要倒序输出了,老样子,for循环!直接让k--,然后输出a[k]a[k],好了,直接return 0;完美散花收场!

完整代码(重头戏)↓

CPP
#include <bits/stdc++.h>//万能头,包含vector,下面写了只是提醒一下。
#include <vector>//头文件
using namespace std;
int main(){
    vector <int> a;//定义一个vector容器
    vector <int> b;//这个是为了存倒序的a数组
    a.reserve(101);//定义大小
    int c,k;
    for(int i = 0;i<=100;i++){
        cin >> a[i];
        if(a[i] == 0){
            c = i-1;
            k = c;
            break;//如果if成立,停止for循环。
        }
    }
    for(int j = 0;j<=c;j++){
        cout << a[k] << " ";
        k--;
    }
    return 0;//拜拜,求赞。
}

评论

2 条评论,欢迎与作者交流。

正在加载评论...