我的代码如下
#include <stdio.h>
void m_quicksort(int a[], int len) {
if(len==1) return;
int pivot = a[0];
int l=0;
int r=len-1;
while (l != r) {
for(;a[r]>=pivot;--r) if(r==l) goto end;
a[l]=a[r];
l++;
if(r==l) goto end;
for(;a[l]<pivot;++l) if(l==r) goto end;
a[r]=a[l];
r--;
if(l==r) goto end;
}
end:
a[l]=pivot;
if(l==0)
m_quicksort(a+1, len-1);
else if(l==len-1)
m_quicksort(a, len-1);
else {
m_quicksort(a,len-1-(l-0));
m_quicksort(a+1,len-(len-(l+1)+1));
}
}
int main(int argc, char *argv[])
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int a[3];
for (int i = 0; i < 3; ++i) {
scanf("%d",&a[i]);
}
m_quicksort(a,3);
char ca[3];
getchar();
for (int i = 0; i<3; ++i) {
ca[i]=getchar();
}
for (int i = 0; i<3; ++i) {
if(i==0)
printf("%d",a[ca[i]-'A']);
else
printf(" %d",a[ca[i]-'A']);
}
printf("\n");
return 0;
}
我的结果是全部测试WA
下载第一个测试数据后发现
测试输出的末尾有0d0a
也就是ascii下的CRLF,DOS下的换行符格式
我从洛谷帮助中心中发现,评测环境搭建在Linux系统下,使用gcc,我本机同样如此,我的数据最后是0a,LF,即UNIX下的换行符格式
所以,这道题的测试输出是有问题吗?
亦或者是我的程序别的地方出现了错误?
衷心盼望各位的帮助与回复!