这个题的测试输出数据是不是有问题?关于回车换行在不同系统下的差别
查看原帖
这个题的测试输出数据是不是有问题?关于回车换行在不同系统下的差别
235564
Peerin楼主2023/2/19 11:05

我的代码如下

#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下的换行符格式

所以,这道题的测试输出是有问题吗?

亦或者是我的程序别的地方出现了错误?

衷心盼望各位的帮助与回复!

2023/2/19 11:05
加载中...