如题所述
c语言指针2个数组查询比较代码如下:
#include <stdio>int main()
{
int *lpa,*lpb;
int a[100],b[100],alen,blen,i,j;
printf("输入数组a长度:\n");
scanf("%d",&alen);
printf("输入%d个有序数据给数组a\n",alen);
for(i=0;i<alen;i++) scanf("%d",&a[i]);
printf("输入数组b长度:\n");
scanf("%d",&blen);
printf("输入%d个有序数据给数组a\n",alen);
for(i=0;i<alen;i++) scanf("%d",&a[i]);
//查询比较
lpa=a;
for(i=0;i<alen;i++)
{
lpb=b;
for(j=0;j<blen;j++)
{
if(*lpb==*lpa) break;
lpb++;
}
if(*lpb==*lpa) break;
lpa++;
}
if(*lpb==*lpa)
{
printf("两数组中发现第一个相同元素:%d",*lpa);
}
else
{
printf("两数组中没有发现相同元素");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-06-04
#include <stdio.h>#include <stdlib.h>#include <malloc.h>int main(){ int *a=NULL;///int int *b=NULL; int *c=NULL; int i,j,tmp,n,k,p,q; printf("please input the number of the number you want in a:"); scanf("%d",&p); a=(int*)malloc(sizeof(int)*p);//convert to int* printf("please input the number of the number you want in b:"); scanf("%d",&q); b=(int*)malloc(sizeof(int)*q); c=(int*)malloc(sizeof(int)*(p+q)); printf("please input the number for a:"); for(i=0;i<p;i++) { scanf("%d",&a[i]); } printf("\n"); printf("please input the number for b:"); for(i=0;i<q;i++) { scanf("%d",&b[i]); } printf("\n"); for(i=0;i<p;i++) { for(j=i+1;j<p;j++) { if(a[i]>a[j]) { tmp=a[i]; a[i]=a[j]; a[j]=tmp; } } } for(i=0;i<q;i++) { for(j=i+1;j<q;j++) { if(b[i]>b[j]) { tmp=b[i]; b[i]=b[j]; b[j]=tmp; } } } i=0; j=0; k=p+q; for(n=0;n<k;n++) { if(a[i]<b[j]) { c[n]=a[i]; i++; continue; } if(a[i]==b[j]) { c[n]=a[i]; i++; j++; k--; continue; } else { c[n]=b[j]; j++; continue; } } for(i=0;i<p;i++) { printf("%d ",a[i]);//output space } printf("\n"); for(i=0;i<q;i++) { printf("%d ",b[i]); } printf("\n"); for(i=0;i<n;i++) { printf("%d ",c[i]); } printf("\n"); return 0;}