在另一个c++之前定制一些东西

cout something before another c++

本文关键字:另一个 c++      更新时间:2023-10-16

我应该写一个程序,读取从1到n的n个int变量。这里的变量代表赛车比赛的开始集(例如4 3 1 2),最后集总是1,2,3,4,。。。。。n我被要求显示超额付款的最小数量(这里是5),然后是超额付款的详细信息(这里是3 1,然后是4 1,然后3 2,然后是2 2,然后4 3)我写了一个c++代码,但我不知道如何在超额付款之前显示,而不将超额付款存储在一个数组中,这个数组占用了我16000 kb以上的内存这是我的代码

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cctype>
using namespace std ;
int main()
{
int a;
cin>>a;
int t[a];
int t1[2002];
for (int i(0); i<a; i++)
    {cin>>t[i];t1[i]=t[i];}
int s=0;int it(0);
for (int i(1); i<=a; i++)
{
    int pos;
    int c=1;
    for (int j(0); j<a && c==1; j++)
    {
        if (t[j]==i)
        {
            pos=j;
            c=0;
        }
    }
    for (int j(1);j<=pos-i+1;j++)
    {
        int aux=t[pos-j];
        t1[it]=t[pos-j];
        t1[it+1]=t[pos-j+1];
        t[pos-j]=i;
        t[pos-j+1]=aux;
        s++;
        it+=2;
    }
}
cout<<s<<endl;
for (int i(0);i<it;i+=2)
{
    cout<<t1[i]<<" "<<t1[i+1]<<endl;
}

return 0;
}

如果你不想使用更多的内存,你可以使用更多的cpu时间(扫描阵列两次,第一次计算天桥的数量,第二次打印),或者使用更多的硬盘空间(创建一个临时文件来存放天桥,在屏幕上打印文件的内容,最后删除它)。

您的任务描述要求实现冒泡排序。

关于显示掉期数量(对应于超额)和掉期本身:只需在执行qlgorithm时计算交换次数,并在执行时显示每个交换。

相关文章: