求解整数串处理问题为什么是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编辑过]




