C++题目 帮忙一下 谢谢!

出栈顺序

【问题描述】

给定一个由n个元素构成的序列,你需要将其中的元素按顺序压入一个大小为c的栈并弹出。元素按它们的出栈顺序进行排列,会得到一个新的序列。我们知道,这样的序列会有很多种,请输出所有新序列中第一个元素最小的序列(若第一个元素最小的序列有多个,则令第二个尽可能小;若仍有多个,则令第三个最小,以此类推)。

【输入格式】

第一行,两个数n,c;

第二行n个数,为序列中n个元素的值。

【输出格式】

输出n个数,为满足要求的序列。

【样例输入】

6 3

5 2 3 8 7 4

【样例输出】

2 3 5 4 7 8

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,c;
int a[100];
cout<<"输入n,c"<<endl;
cin>>n>>c; //输入n,c
for(int i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"个数";
cin>>a[i]; //输入n个数的值
}
int sortNumber=n/c;

for(int i=0;i<n/c;i++)
{
sort(a+i*c,a+(i+1)*c);
}
for(int i=0;i<n;i++)
{
cout<<a[i]; //输出n个数的值
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答