c语言 求A与B的交集,并且按照大小排列,哪个大虾帮我看下错在哪里了...

发布网友 发布时间:2024-10-23 19:09

我来回答

4个回答

热心网友 时间:2024-10-27 08:35

你程序好像写错了啊,你在仔细看看,scanf语句后的scanf应该是printf吧,下面的是我刚才根据你的问题重新写的一个。你看看可行。
#include<stdio.h>
void main()
{
int a[10],b[10],c[10],i,j=0,k,t,h;
for(i=0;i<=10;i++)
scanf("&d,",&a[i]);
printf("\n");
for(i=0;i<=10;i++)
scanf("&d,",&b[i]);
printf("\n");
for(i=0;i<=10;i++)
{
if(a[i]==b[i])
{
c[j]=a[i];
j++;
}

}

for(k=0;k<j;k++)
{
for(h=k+1;h<=j;h++)
if(c[k]<c[h])
{
t=c[k];
c[k]=c[h];
c[h]=t;
}
}
for(i=0;i<j;i++)
printf("%d,",c[i]);

}

热心网友 时间:2024-10-27 08:33

#include<iostream>
using namespace std;

int cmp( const void *a, const void *b)
{
return *(int *)a - *(int *)b ;
}

int main()
{
int m,n;
int i,j,k;
k=0;

scanf("%d",&m) ;
int *a=new int[m] ;
memset( a,0x00,sizeof(int));
for( i=0;i<m;i++)
scanf("%d",&a[i]);

scanf("%d",&n) ;
int *b=new int[n] ;
memset( b,0x00,sizeof(int));
for( i=0;i<n;i++)
scanf("%d",&b[i]);

//先对a[],b[]排序
qsort( a,m,sizeof(int), cmp) ;
qsort( b,n,sizeof(int), cmp) ;

int c[20]={0};

//从小到大比较 a[i]>b[j] 则j++, a[i]<b[j] 则i++ a[i]==b[j] 则 i++,j++
i=0;
j=0;
k=i;
while( i<m && j<n)
{
if( a[i] > b[j] )
j++ ;
else if( a[i] < b[j] )
i++ ;
else
{
c[k++]=a[i] ;
i++;
j++;
}
}

for( i=0;i<k;i++)
{
printf("c[%d]=%d\t", i,c[i]);
}

system("pause");
return 0;
}

热心网友 时间:2024-10-27 08:33

倒数第二个和倒数第三个for里的条件全部再减个1。

热心网友 时间:2024-10-27 08:33

大哥 ,看不是很懂 ,只知道上面换行的不能用 scanf 应该用 printf

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com