求解整数串处理问题为什么是wrong answer
题目如下:Description
处理一个整数序列,当某数出现第二次,第三次。。时,只保留第一次,其他重复的删除,然后将处理好的序列输出
Input
N个空格分隔的正整数Ai(n<=10000,Ai<=10000),以文件结束终止程序。
Output
一行空格分隔的整数序列
Sample Input
Original Transformed
4 5 6 4 3 1
Sample Output
Original Transformed
4 5 6 3 1
我写的代码是:
程序代码:
#include<stdio.h> #include<string.h> int p[10001],q[10001]; int main() { char gh; int f,ch=0; while (scanf("%d%c", &ch, &gh) != EOF) { for (int k = 0;k < 10001;k++) q[k]=p[k] = 0; p[0] = ch; q[ch] = ch; f = 1; int i, j; for (i = 1;i < 10001;i++) { if (gh == '\n')break; scanf("%d%c", &ch, &gh); if (q[ch] == 0) { q[ch] = ch; p[i] = ch; f = i+1; } } for (j = 0;j < f;j++) { if ((p[j] != 0) && j != f - 1)printf("%d ", p[j]); if ((p[j] != 0) && j == f - 1)printf("%d\n", p[j]); } } return 0; }
答案错,可是我实在想不出哪里出错了,求大神指点,谢谢!
[此贴子已经被作者于2016-1-31 13:48编辑过]