1996-c-三

#include <stdio.h>
#define maxSize 100

int main()
{
    int i=1,j,k,l,d;//循环变量
    int n;//平方数
    int m=0;//数组下标
    int arr[maxSize];//存储平方数集合
    int num[10];//暂存数组
    int flag=0;//标记

    while(1)//生成三位平方数
    {
        n=i*i;
        if(n>99&&n<1000) arr[++m]=n;//数组下标从1开始
        if(n>1000) break;
        i++;
    }

    for(i=1;i<=m;i++)//判断构成三组数不重复
    {
        num[1]= arr[i] / 1 % 10;
        num[2]= arr[i] / 10 % 10;
        num[3]= arr[i] / 100 % 10;

        for(j=i+1;j<=m;j++)
        {
            num[4]= arr[j] / 1 % 10;
            num[5]= arr[j] / 10 % 10;
            num[6]= arr[j] / 100 % 10;

            for(k=j+1;k<=m;k++)
            {
                num[7]= arr[k] / 1 % 10;
                num[8]= arr[k] / 10 % 10;
                num[9]= arr[k] / 100 % 10;

                flag=0;//重复标记初始化,每次都需初始化

                //判断是否重复
                for(l=1;l<=9;l++)
                {
                    for(d=l+1;d<=9;d++)
                    {
                        if(num[l]==num[d]) flag=1;
                    }
                }
                if(flag==0) //如果不重复
                {
                    printf("%d %d %d\n",arr[i],arr[j],arr[k]);
                }
            }
        }
    }
}