杭电acm 2034问题,总是WA,帮忙看下啊

#include<stdio.h>#include<string.h>#defineLEN100intmain(void){intn,m,num,flag,i,j,k,t... #include<stdio.h>
#include<string.h>
#define LEN 100
int main (void)
{
int n,m,num,flag,i,j,k,temp,a[LEN],b[LEN],c[LEN];
while(scanf("%d %d",&n,&m)!=EOF&&(n||m))
{
num=0;k=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++){
for(j=0;j<m;j++)
{flag=1;
if (a[i]==b[j])
{
flag=0;
num++;
break;
}}
if(flag){
c[k]=a[i];k++;}}
for(i=0;i<k-2;i++)
for(j=1;j<k-1;j++)
if(c[i]>c[j])
{
temp=c[i];
c[i]=c[j];
c[j]=temp;
}
for(i=0;i<k;i++)
printf("%d ",c[i]);
if(num==n) printf("NULL");
printf("\n");
}
return 0;
}
我的代码
地址是 http://acm.hdu.edu.cn/showproblem.php?pid=2034
展开
 我来答
qfyh05
2011-10-18 · TA获得超过507个赞
知道小有建树答主
回答量:325
采纳率:50%
帮助的人:358万
展开全部
错误有2处。
首先,排序算法错误。
for(i=0;i<k-2;i++)
for(j=1;j<k-1;j++)
修改为:
for(i=0;i<k-1;i++)
for(j=i+1;j<k;j++)
第二处就是flag标记位置错误了。
flag=1;放到for(i=0;i<n;i++){下面。
------------
建议:看到你编写程序的习惯很不好,注意缩进,否则不好排错。平时多注意。
追问
过了,谢谢指导啊,,,可以留个Q吗,以后想请教下啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式