(基础 输入方法 栈)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; }