创建a,b两个数组,元素个数由用户分别输入,元素的值由随机数生成,最大值不超过20。
功能:
1. 输出a,b数组的各元素值;
2. 找出在数组a中第一个出现的、与b中含有的值相同的元素位置,并输出这个值。
/****************************************************************************/
/*用随机数放入两个数组中,并找出a数组中与第二个数组的相等的第一个数的位置与值*/
/* 作者:Darges */
/****************************************************************************/
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main()
{
int colom1,colom2;
int i,j;
int *p1,*p2;
p1=NULL;
p2=NULL;
printf("请输入数组1、2的个数:");
scanf("%d%d",&colom1,&colom2);
p1=(int *)calloc(1,sizeof(int)*colom1);
p2=(int *)calloc(1,sizeof(int)*colom2);
srand((unsigned)time(NULL)); //产生随机数
for(i=0;i<colom1;i++)
{
p1[i]=rand()%20;
printf(" %-2d",p1[i]);
}
printf("\n");
for(i=0;i<colom2;i++)
{
p2[i]=rand()%20;
printf(" %-2d",p2[i]);
}
printf("\n");
//if(colom1<colom2)
//{
for(i=0;i<colom1;i++)
{
for(j=0;j<colom2;j++)
{
if(*(p1+i)==*(p2+j))
{
printf("相同的数:%d,在第一个数组的%d,在第二个数组的%d\n",*(p1+i),i+1,j+1);
exit(0);
}
}
}
//}
/*else
{
for(i=0;i<colom2;i++)
{
for(j=0;j<colom1;j++)
{
if(*(p2+i)==*(p1+j))
{
printf("相同的数:%d,在第一个数组的%d,在第二个数组的%d\n",*(p1+j),j+1,i+1);
exit(0);
}
}
}
}*/
printf("没找到相同的数!\n");
free(p1); //记得释放内存
free(p2);
}
由于是用户输入数组的大小,所以必须使用动态数组,即malloc或calloc