#include
int main()
{
int m,n,i,j,t=0,count=0,cnt=0,k,temp;
int a[100],b[100],c[100],d[100];
scanf("%d",&n);
for(i=0;i"%d",&a[i]);
}
scanf("%d",&m);
for(i=0;i"%d",&b[i]);
}
for(i=0;ifor(j=0;jif(a[i]==b[j]){
c[t]=a[i];
t++;
}
}
}
for(i=0;ifor(i=0;ifor(j=0;jif(d[j]==c[i])
break;
}
if(j==i){
d[cnt]=c[i];
cnt++;
}
}
for(k=0;kfor(i=k+1;iif(d[i]>d[k]){
temp=d[i];
d[i]=d[k];
d[k]=temp;
}
}
}
if(t>0){
for(i=0;i"%d ",d[i]);
}
}
else{
printf("No Answer");
}
return 0;
}
有什么问题啊,可以帮我试试吗
咋这么夏杂?第三个for循环遇到相同的直接输出就行了
如果数组中有重复数,可以先去重
#include <stdio.h>
int main()
{
int m, n, i, j, t = 0, count = 0, cnt = 0, k, temp;
int a[100], b[100], c[100], d[100];
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
scanf("%d", &m);
for (i = 0; i < m; i++)
{
scanf("%d", &b[i]);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (a[i] == b[j])
{
c[t] = a[i];
t++;
}
}
}
if (t > 0)
{
for (i = 0; i < t; i++)
{
printf("%d ", c[i]);
}
}
else
{
printf("No Answer");
}
return 0;
}
从18到25行不就已经把活都干完了吗,输出就行了,后面都是在弄啥咧