标签:
输入10个整形数,输入一个整形m,将整形数m个数字前置,如 1 2 3 4 5 6 7 8 9 10,m=3,输出 8 9 10 1 2 3 4 5 6 7
解题思路:
使用两个堆栈即可。代码如下:
#include <iostream> #include<stack> using namespace std; void main() { int a[10]={0}; for (int i=0;i<10;i++) { cin>>a[i]; } int num; cin>>num; num%=10; stack<int> sta1,sta2; for (int i=0;i<10;i++) { if (i<(10-num)) { sta1.push(a[i]); } else sta2.push(a[i]); } for (int i=9;i>=0;i--) { while (!sta1.empty()) { int temp=sta1.top(); a[i]=temp; i--; sta1.pop(); } while (!sta2.empty()) { int temp=sta2.top(); a[i]=temp; i--; sta2.pop(); } } for (int i=0;i<10;i++) { cout<<a[i]<<" "; } }
标签:
原文地址:http://blog.csdn.net/sinat_24520925/article/details/45728069