求帮忙检查错误(排序问题)
c4droid吧
全部回复
仅看楼主
level 10
代码可以正常运行,我测试的几组数据都通过了,但OJ一直答案错误[怒][怒][怒],我已经绝望了[泪][泪][泪],用的是冒泡法,题目如图,代码如下:
#include<iostream>
using namespace std;
int main()
{int n,d,e,f,g=1;
cin>>n;
int a[n],b[n],c[n];
for (f=0;f<n;f++)
{cin>>a[f]>>b[f];
c[f]=f+1;}
for (;g<n;g++)
{e=1;
for (f=n-1;f>=g;f--)
{if (a[f]>a[f-1])
{d=a[f];a[f]=a[f-1];a[f-1]=d;
d=b[f];b[f]=b[f-1];b[f-1]=d;
d=c[f];c[f]=c[f-1];c[f-1]=d;e=0;}
else if (a[f]==a[f-1])
{if (b[f]<b[f-1])
{d=a[f];a[f]=a[f-1];a[f-1]=d;
d=b[f];b[f]=b[f-1];b[f-1]=d;
d=c[f];c[f]=c[f-1];c[f-1]=d;e=0;}}
}
if (e) break;}
for(f=0;f<n-1;f++)
cout<<c[f]<<" ";
cout<<c[n-1];}
ʚ [滑稽] ɞ
自从我长出翅膀之后,你们就再也阻止不了我装逼
2016年10月14日 09点10分 1
level 11
考察边界,和换行的问题。
2016年10月14日 09点10分 2
数组越界OJ会提醒,输出不需要换行[勉强]
2016年10月14日 09点10分
定义成有1000个元素的数组也是答案错误,应该不是数组越界[哈哈]
2016年10月14日 09点10分
level 11
仔细看了下,你这算法有问题。而且数组不能像你那样定义
2016年10月14日 09点10分 4
能帮忙改一下吗[乖]
2016年10月14日 09点10分
可是我这样定义可以正常运行啊[疑问]
2016年10月14日 09点10分
回复
林辰123567
:数组定义确实有问题。元素个数不能定义为变量。
2016年10月14日 10点10分
@笑人花了脸 我定义成1000也不对啊[泪]
2016年10月14日 10点10分
level 9
我测试的几组没错
2016年10月14日 10点10分 5
我测试的也没错,但OJ就是不过[泪]
2016年10月14日 10点10分
level 10
防沉补丁[滑稽]
ʚ [滑稽] ɞ
自从我长出翅膀之后,你们就再也阻止不了我装逼
2016年10月15日 09点10分 6
补丁X2
2016年10月16日 08点10分
1