#include <stdio.h>
void getInts(int arr[], int len)
{
int i;
for(i=0; i<len; i++)
{
scanf("%d", &arr[i]);
}
}
int matchInts(int result[], int arr1[], int arr2[], int len1, int len2)
{
int i, j, k, n, flag;
n = 0; // 相同个数
// i j 2个循环对比2行的整数
for(i=0; i<len1; i++)
{
for(j=0; j<len2; j++)
{
// 相等则进行保存,在保存的同时在结果中比对该数是否已在存
if(arr1[i]==arr2[j])
{
flag = 0;
for(k=0; k<100; k++)
{
if(arr1[i]==result[k])
{
flag = 1;
break;
}
}
if(!flag) // 结果中没有该数则保存
{
result[n] = arr1[i]; // 以n为下标进行保存
n++; // 该句运行后,最后n为相同元素的个数,也就是数组result的长度。
}
break;
}
}
}
return n;
}
void printInts(int result[], int resultLen)
{
int i;
for(i=0; i<resultLen; i++)
{
printf("%d#", result[i]);
}
printf("\n");
}
int main(void)
{
int arr1[100], arr2[100], result[100]={0};
int len1, len2, resultLen=0;
scanf("%d", &len1);
getInts(arr1, len1);
scanf("%d", &len2);
getInts(arr2, len2);
resultLen = matchInts(result, arr1, arr2, len1, len2);
if(resultLen!=0)
{
printInts(result, resultLen);
}
else
{
printf("No Answer\n");
}
return 0;
}
|