欢迎来到PJCK的博客

(基础 输入方法 栈)P1427 小鱼的数字游戏 洛谷

题目描述

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

输入输出格式

输入格式:

 

一行内输入一串整数,以0结束,以空格间隔。

 

输出格式:

 

一行内倒着输出这一串整数,以空格间隔。

 

输入输出样例

输入样例#1: 复制
3 65 23 5 34 1 30 0
输出样例#1: 复制
30 1 34 5 23 65 3

注意输入方法,可以用for循环,用break来退出
C++代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 102;
int a[maxn];
int main(){
    int k;
    for(int i = 0;;i++){
        scanf("%d",&a[i]);
        if(a[i] == 0){
            k = i;
            break;
        }
    }
    for(int i = k-1; i>=0; i--){
        printf("%d ",a[i]);
    }
    return 0;
}

也可以用栈

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
using namespace std;
const int maxn = 102;
stack<int> s;
int main(){
    int k;
    while(cin>>k){
        if(k == 0)
            break;
        s.push(k);
    }
    while(!s.empty()){
        printf("%d ",s.top());
        s.pop();
    }
    return 0;
}

 

posted @ 2019-03-21 17:43  PJCK  阅读(349)  评论(0编辑  收藏  举报