返回
阅读【木秀于林】的帖子
求助编程排序问题
版块:C4droid
题目如图,我运行结果和题目一模一样,自己换了几组数据也没问题,但OJ报答案错误,我的方法是定义三个数组,分别储存a,b,的值和序号,先找出a最大的一组然后将这一组在三个数组中的值都移到第一位,其他组依次往后推一位,最后输出储存序号的数组,以下是代码
#include<iostream>
using namespace std;
int main()
{int m,n,d,e,f,g,h,a[1000],b[1000],c[1000];
cin>>n;
for (f=0;f<n;f++)
{cin>>a[f]>>b[f];
c[f]=f+1;}
for (f=0;f<n-1;f++)
{for (d=f+1;d<n;d++)
{if (a[f]<a[d])
{m=d;
e=a[d];
g=b[d];
h=c[d];
for (;d>f;d--)
{a[d]=a[d-1];
b[d]=b[d-1];
c[d]=c[d-1];}
a[f]=e;
b[f]=g;
c[f]=h;
d=m;}
else if (a[f]==a[d])
{if (b[f]>b[d])
{m=d;
e=a[d];
g=b[d];
h=c[d];
for (;d>f;d--)
{a[d]=a[d-1];
b[d]=b[d-1];
c[d]=c[d-1];}
a[f]=e;
b[f]=g;
c[f]=h;
d=m;}}
else
continue;
}}
for (e=0;e<n-1;e++)
cout<<c[e]<<" ";
cout<<c[n-1];}
#include<iostream>
using namespace std;
int main()
{int m,n,d,e,f,g,h,a[1000],b[1000],c[1000];
cin>>n;
for (f=0;f<n;f++)
{cin>>a[f]>>b[f];
c[f]=f+1;}
for (f=0;f<n-1;f++)
{for (d=f+1;d<n;d++)
{if (a[f]<a[d])
{m=d;
e=a[d];
g=b[d];
h=c[d];
for (;d>f;d--)
{a[d]=a[d-1];
b[d]=b[d-1];
c[d]=c[d-1];}
a[f]=e;
b[f]=g;
c[f]=h;
d=m;}
else if (a[f]==a[d])
{if (b[f]>b[d])
{m=d;
e=a[d];
g=b[d];
h=c[d];
for (;d>f;d--)
{a[d]=a[d-1];
b[d]=b[d-1];
c[d]=c[d-1];}
a[f]=e;
b[f]=g;
c[f]=h;
d=m;}}
else
continue;
}}
for (e=0;e<n-1;e++)
cout<<c[e]<<" ";
cout<<c[n-1];}
(adsbygoogle = window.adsbygoogle || []).push({});
- 0
- 0收藏帖子
- 0关注帖子
- 0
本贴有需要购买的内容
附件列表
共 29 条评论
排序:时间 降序
请文明交流~
14楼
我还没学sortaz2181036比如 你那个例子里面 你设一个二维数组 c[][] 输入:c[0][0] = a c[0][1] = b c[0][2] = i
后面调用sort 就完事了
00
12楼
比如 你那个例子里面 你设一个二维数组 c[][] 输入:c[0][0] = a c[0][1] = b c[0][2] = i
后面调用sort 就完事了
后面调用sort 就完事了
00
第1页,共计2页
- 1
- 2