用C语言写一个函数,判定任意给定的两维数组(100×100)中是否有相同元素。
3个回答
展开全部
#include<stdio.h>
#define NUM 3
void main()
{
int i=0,j=0,k=0,m=0;
int cnt=0;
int c[NUM*NUM];
int a[NUM][NUM]={{45,12,95},{47,58,21},{48,52,33}};
int b[NUM][NUM]={{45,87,55},{95,44,55},{88,99,77}};
for(i=0;i<NUM;i++)
{
for(j=0;j<NUM;j++)
{
for(k=0;k<NUM;k++)
{
for(m=0;m<NUM;m++)
{
if(a[i][j]==b[k][m])
{
c[cnt++]=a[i][j];
}
}
}
}
}
if(cnt==0)
{
printf("没有相同元素!\n");
}
else
{
printf("有%d个相同元素!\n",cnt);
for(i=0;i<cnt;i++)
{
printf("%3d ",c[i]);
}
printf("\n");
}
}
运行结果正确。如果要改变数组大小,只要改宏定义#define NUM 3并在主函数中赋初值就行了。
#define NUM 3
void main()
{
int i=0,j=0,k=0,m=0;
int cnt=0;
int c[NUM*NUM];
int a[NUM][NUM]={{45,12,95},{47,58,21},{48,52,33}};
int b[NUM][NUM]={{45,87,55},{95,44,55},{88,99,77}};
for(i=0;i<NUM;i++)
{
for(j=0;j<NUM;j++)
{
for(k=0;k<NUM;k++)
{
for(m=0;m<NUM;m++)
{
if(a[i][j]==b[k][m])
{
c[cnt++]=a[i][j];
}
}
}
}
}
if(cnt==0)
{
printf("没有相同元素!\n");
}
else
{
printf("有%d个相同元素!\n",cnt);
for(i=0;i<cnt;i++)
{
printf("%3d ",c[i]);
}
printf("\n");
}
}
运行结果正确。如果要改变数组大小,只要改宏定义#define NUM 3并在主函数中赋初值就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询