/*第二道题的程序如下*/
#include<stdio.h>
#include<conio.h>
typedef struct
{
int unit;/*存放个位数*/
int ten;/*存放十位数*/
int hunderd;/*存放百位数*/
}dataType;
int checkNum(dataType *,int);/*传入一个整数, 判断它的各个位数是不是相等并且不为0,然后存入dataType类型的数据中
成功返回1,不成功返回0*/
int checkMember(dataType,dataType);/*判断二个dataType类型的数据的各个位数是不是不相等,
都不相等返回1,否则返回0*/
void main(void)
{
dataType num1,num2,num3;
int number;
clrscr();
for(number=123;number<987/3;number++)
{
if(0!=checkNum(&num1,number))
{
if(0!=checkNum(&num2,2*number)
&& 0!=checkMember(num1,num2))
{
if(0!=checkNum(&num3,3*number)
&& 0!=checkMember(num1,num3)
&& 0!=checkMember(num2,num3))
{
printf("%d %d %d\n",number,2*number,3*number);
}
}
}
}
getch();
}
int checkNum(dataType *num,int number)
{
int i,j,k;
i=number/100;
j=(number-i*100)/10;
k=number%10;
if(i!=j && i!=k && j!=k
&& i!=0 && j!=0 && k!=0)
{
num->hunderd=i;
num->ten=j;
num->unit=k;
return 1;
}
else
return 0;
}
int checkMember(dataType num1,dataType num2)
{
if(num1.unit!=num2.unit && num1.unit!=num2.ten && num1.unit!=num2.hunderd
&& num1.ten!=num2.unit && num1.ten!=num2.ten && num1.ten!=num2.hunderd
&& num1.hunderd!=num2.unit && num1.hunderd!=num2.ten && num1.hunderd!=num2.hunderd)
{
return 1;
}
else
return 0;
}
[此贴子已经被作者于2006-12-2 21:08:58编辑过]