【求助】 哪里出错了?

寻星已逝 2014-08-16 05:02:59
Input
每组输入数据占3行,第一行是2个整数 n ( 0 < n ≤ 100 ) 和 m ( 0 < m ≤ 100 ) ,分别表示集合A和集合B的元素个数。
第二行是n个整数,表示集合A的n个元素。
第三行是m个整数,表示集合B的m个元素。
每个元素为不超出int范围的整数,元素之间有一个空格隔开。
如果n=0并且m=0表示输入的结束,不做处理。

Output
针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出"NULL",否则从小到大输出结果。 两个元素之间有一个空格,行末没有空格。

Sample Input
3 3
1 2 3
1 4 7
3 7
2 5 8
2 3 4 5 6 7 8
0 0

Sample Output
2 3
NULL

#include<stdio.h>
void bubble(int p[],int t);
int main()
{
int i,j,n,k,m,t,a[101],b[101],p[101];
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0)
break;
t=n;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
k=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i]==b[j])
{
t--;
i++;
}
}
p[k++]=a[i];
}
if(t==0)
printf("NULL");
bubble(p,t);
for(i=0;i<t;i++)
if(i==t-1)
printf("%d",p[i]);
else
printf("%d ",p[i]);
printf("\n");
}
return 0;
}
void bubble(int p[],int t)
{
int i,j,s;
for(i=1;i<t;i++)
for(j=0;j<t-i;j++)
if(p[j]>p[j+1])
{
s=p[j];p[j]=p[j+1];p[j+1]=s;
}

}
...全文
188 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻星已逝 2014-08-20
  • 打赏
  • 举报
回复
还是出现Wrong Answer。。。。。。。
cdsnfresh 2014-08-19
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
冒泡排序可能有问题。
代码好像应该是这样吧

void bubble(int p[],int t)
{
    int i,j,s;
    for(i=1;i<t;i++)
      for(j=0;j<t-i;j++)
       if(p[j]>p[i])//这里应该是i吧
       {
            s=p[j];p[j]=p[j+1];p[j+1]=s;
       }
     
}
赵4老师 2014-08-18
  • 打赏
  • 举报
回复
冒泡排序可能有问题。
百曉生 2014-08-17
  • 打赏
  • 举报
回复
有没有什么提示啊?
熊熊大叔 2014-08-17
  • 打赏
  • 举报
回复
估计是做什么online的题目不过。这种题目主要就是看你的用例设计是否全面。你可以把你设计的用例写出来让别人看考虑的是否全面。

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧