就是运行时间比较长,唉。。。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int i,j;
long int temp;
/*删除重复项并排序输出排序后的R数组地址和元素个数。*/
int de_repeat_sort(long int R[],int num2)
{
    long int dp[num2];
    for(i=0;i<num2;i++)
    {
        for(j=0;j<num2-1;j++)
        {
            if(R[j]>R[j+1])
            {
                temp=R[j];
                R[j]=R[j+1];
                R[j+1]=temp;
            }
            if(R[j]==R[j+1])
            {
                R[j+1]=-1;
            }
        }
    }
    j=0;
    for(i=0;i<num2;i++)
    {
        if(R[i]!=-1)
        {
            dp[j]=R[i];
            j++;
        }
    }
    num2=j;
    j=0;
    for(i=0;i<num2;i++)
    {
        R[i]=dp[i];
        j++;
    }
    return num2;
}
int main()
{
    long int I[1000],R[1000];
    int num1,num2,num=0,num3=0;
    char str_R[30],str_I[30];
    while(scanf("%d",&num1)!=EOF)
    {
        for(i=0;i<num1;i++)
        {
            scanf("%ld",&I[i]);
        }
        scanf("%d",&num2);
        for(i=0;i<num2;i++)
        {
            scanf("%ld",&R[i]);
        }
        num2=de_repeat_sort(R,num2);//排序
        /*计算输出的总元素个数。*/
        for(i=0;i<num2;i++)
        {
            sprintf(str_R,"%ld",R[i]);
            for(j=0;j<num1;j++)
            {
                sprintf(str_I,"%ld",I[j]);
                if(strstr(str_I,str_R))
                {
                    num=num+2;
                    num3++;
                }
            }
            if(num3>0)
            {
                num=num+2;
                num3=0;
            }
        }
        printf("%d ",num);//输出总元素个数;
        num=0;
        /*按要求输出各个满足条件的元素。*/
        for(i=0;i<num2;i++)
        {
            sprintf(str_R,"%ld",R[i]);//整形数据打印成字符型数据;
            for(j=0;j<num1;j++)
            {
                sprintf(str_I,"%ld",I[j]);
                if(strstr(str_I,str_R))//字符串是否包含判断;
                {
                    num++;
                }
            }
            if(num>0)
            {
                printf("%ld %d ",R[i],num);
                for(j=0;j<num1;j++)
                {
                    sprintf(str_I,"%ld",I[j]);
                    if(strstr(str_I,str_R))
                    {
                        printf("%d %ld ",j,I[j]);
                    }
                }
                num=0;
            }
        }
        printf("\n");
    }
}