/*求相乘为四位数的个位数的任意两个数*/
main()
{
void fun1(int a[],int n);
int a[4],n,i,m=1,j;
clrscr();
printf("input n\n\n");
scanf("%d",&n);
for(i=3;i>=0;i--)
/*输入的千位数的各位数输入到数组a中 */
{
for(j=0;j<i;j++)
m=10*m;
a=n/m;
n=n%m;
m=1;
}
fun1(a,n);
}
void fun1(int a[],int n)
{
int i,j,x,y,z;
int b,c,d[2];
for(i=0;i<3;i++)
/*寻找四个数中相乘如果个位数等于四位数中的个位数,那么将这两个数放入变量B,C中*/
{
for(j=i+1;j<4;j++)
if((a*a[j])%10==a[0]||(a*a[j])==a[0])/*判断两个数相乘是否等于个位数,一种情况为两个数相乘为个位数,另一种是两个数相乘为十位数,其中个位数等于千位数的个位数*/
{
b=a;
c=a[j];
printf("\nb=%d,c=%d\n\n",a,a[j]);
x=i;
y=j;
for(i=0;i<4;i++)
/*将另外两个数放入数组d中*/
if(i!=x&&i!=y)
{
d[0]=a;
z=i;
}
for(i=0;i<4;i++)
if(i!=x&&i!=y&&i!=z)
{
d[1]=a;
}
printf("d[0]=%d,d[1]=%d\n",d[1],d[0]);
}
}
}
例如1395
应该要显示出三组
b=5,c=9
b=5,c=3
b=5,c=1
但是只出现第一组
到底是为什么?
|