永发信息网

杭电ACM 2034 为什么错了啊

答案:1  悬赏:60  手机版
解决时间 2021-03-02 22:05
  • 提问者网友:十年饮冰
  • 2021-03-02 02:03
思路大概如下 判断 前面集合的一个数会不会和下面的相等 如果不会 就赋给C数组
#include <stdio.h>

int main()
{
int a[100],b[100],c[100];
int n,m,i,j,p,h=0;
int s;
while(~scanf("%d%d",&n,&m))
{ if(n==0&&m==0)
break;
for(i=0;i<n;i++)
scanf("%d",a[i]);
for(j=0;j<m;j++)
scanf("%d",b[j]);
s=0;
for(i=0;i<n;i++)
{
p = 1;
for(j=0;j<m;j++)
{
if(a[i]==b[j])
{
p=0;
break;
}
}
if(p)
{c[i]=a[i];h++;}
}
for(i=0;i<n;i++)
if(h!=0)
{
printf("%d ",c[i]);
s=1;
}
if(s)
printf("\n");
else
printf("NULL\n");
}
return 0;
}
最佳答案
  • 五星知识达人网友:拜訪者
  • 2021-03-02 02:33
首先,你真的跑过这代码吗……

然后,这一段不符合逻辑,啥意思?
for(i=0;i<n;i++)
if(h!=0)
{
printf("%d ",c[i]);
s=1;
}

最后,题目要求从小到大输出结果

再仔细想想吧……
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯