请问这个该怎么用C语言表示
在线请求解答
心怀诚挚之心
望看看问题
帮助完成练习
非标准答案,仅供参考!谢谢!
#include <stdio.h>
#include <string.h>
void intersection(int (*arr)[100], int len1, int len2, int *out, int *n)
{
int k = 0;
for (int i = 0; i < len1; i++)
{
for (int j = 0; j < len2; j++)
{
if (*(*arr + i) == *(*(arr + 1) + j))
{
*(out + k) = *(*arr + i);
k++;
}
}
}
*n = k;
}
int main(int argc, char *argv[])
{
int n;
do
{
scanf("%d", &n);
} while (n < 1);
int arr[n][2][100], len1[n][2], out[n][100], len[n];
memset((char *)len, 0, n * sizeof(int));
for (int i = 0; i < n; i++)
{
int z = 0;
scanf("%d", &len1[i][0]);
for (int j = 0; j < len1[i][0]; j++)
{
scanf("%d", &arr[i][0][z++]);
}
scanf("%d", &len1[i][1]);
z = 0;
for (int k = 0; k < len1[i][1]; k++)
{
scanf("%d", &arr[i][1][z++]);
}
}
for (int i = 0; i < n; i++)
{
intersection(arr[i], len1[i][0], len1[i][1], out[i], &len[i]);
}
//输出
puts("");
for (int i = 0; i < n; i++)
{
if (len[i] == 0)
puts("empty!");
else
{
for (int j = 0; j < len[i]; j++)
{
printf("%d ", out[i][j]);
}
puts("");
}
}
return 0;
}