对于acm的题目,我觉得如果在自己的电脑上运行对了,提交错误,怎么找出来错误,第一,反复读题目,看自己的程序中都满足题目中的要求没有,有时候输出的形式也要注意一下,有可能是要你把所有需要输入的数据都输进去,然后在吧所有输入的处理后再输出,有可能也是输入一个就处理一个,这样的情况也有的,需要注意下,再就是定义的数组范围,也是一个容易出错的,这些是我做题发现的一些,一般提交错误,大多数情况还是算法的问题,因为在检查你的程序的时候,是很多数据,而且边界条件也要满足,自己多测试下,看看算法对不对,自己喜欢它,就坚持下去。
杭电的输入要判断文件结束.详见杭电acm主页第一栏F.A.Q
P.S.新用一个OJ时最好先读一遍它的FAQ,了解它的提交规则,避免走许多弯路啊...
只能帮你到这儿了。
PS:昨天你采纳的就是我,你写的真的很复杂。只需要在第二个集合中寻找第一个集合中的元素判断是否输出就可以。
其实这种事情上面没必要坚持什么,你看到比自己写的好的代码就抄过来,放下原来自己觉得对但实际上没人认同的算法。才会进步啊。
#include "stdio.h"
int main()
{
int n,m,i,j,temp,flag;
int a[220],b[100];
while(scanf("%d %d",&n,&m))
{
temp=0;
flag=0;
if(n==0 && m==0)
break;
for(i=0;iscanf("%d",&a[i]);
for(i=0;i{
for(j=n;j{
if(a[i]==a[j])
break;
}
if(j==m+n)
flag=1;
if(flag==1)
b[temp++]=a[i];
flag=0;
}
if(temp==0)
printf("NULL");
else
for(i=0;i{
for(j=i;j{
if(b[i]>b[j])
n=b[j],b[j]=b[i],b[i]=n;
}
}
for(i=0;iif(i==0 || b[i] != b[i-1])
printf("%d ",b[i]);
printf("\n");
}
return 0;
}
把代码发出来吧 链接点不进去
你的代码是好用的啊