丢失的数字:新手求大神指教啊啊啊!运行正确,但是提交就错了
Description有N个数字是来自一个长度为N+1的连续整数序列,但是给你的并不是有序的,请你帮忙找出来是缺失的那个数字是在序列的两边还是中间
Input
有多组测试数据,每组测试数据包括2行,第一行包括一个整数N(0<N<10000),第二行包括N个整数
以N为0结束
Output
每组测试数据输出结果:
中间缺失输出M,两边缺失输出S
Sample Input
Original Transformed
5
2 3 7 5 6
5
3 4 2 5 6
0
5[EOL] 2[SP]3[SP]7[SP]5[SP]6[EOL] 5[EOL] 3[SP]4[SP]2[SP]5[SP]6[EOL] 0[EOL] [EOF]
Sample Output
Original Transformed
Case 1:
M
Case 2:
S
我的代码如下:
#include<stdio.h>
#include<stdlib.h>
cmp(const void*a,const void*b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int n,j=1;
while(scanf("%d",&n)!=EOF)
{
if(n==0) break;
else
{
int a[10020],i;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
qsort(a,n,sizeof(a[0]),cmp);
for(i=1;i<n;i++)
{
if(a[i]!=a[i-1]+1)
{
printf("Case %d:\n",j);
printf("M\n");
break;
}
if(i==n-1)
{
printf("Case %d:\n",j);
printf("S\n");
}
}
}
j++;
}
return 0;
}
非常感谢!!!