帮忙编一个C程序~

来源:百度知道 编辑:UC知道 时间:2024/09/24 05:22:57
要求:
找出所有这样的三个数字,
将三个数字变换顺序组合后,得到的六个三位数中,有三个是完全平方数。
输出那三个完全平方数。

比如:给定1,2,3
组合后就是123,132,213,231,312,321这6数,如果
123,132,213是完全平方数,那么就输出123,132,213
分数不是问题,希望帮帮忙。
一楼,我只想知道一个编程而已,你那里我刚看了,貌似没有吧!
二楼,谢谢回答,思路理解了~
就是你的括号加错了,能改改吗?可能就是平方sqrt得那一行的括号错了,一共就是12行

#include <stdio.h>
#include <math.h>

main()
{
int i,j,k,n,cnt=0;
int a[6],b[6],m;

for(i=1;i<=9;i++)
for(j=i+1;j<=9;j++)
for(k=j+1;k<=9;k++)
{
n=0;
a[n++]=100*i+10*j+k;
a[n++]=100*i+10*k+j;
a[n++]=100*j+10*i+k;
a[n++]=100*j+10*k+i;
a[n++]=100*k+10*i+j;
a[n++]=100*k+10*j+i;

for(cnt=0,n=0;n<6;n++)
{
m=sqrt(a[n]);
if(a[n]==m*m)
{
b[cnt++]=a[n];
}
}
if(cnt>=3)
{
printf("%d %d %d\n",i,j,k);
for(n=0;n<cnt;n++)
{
printf("%d ",b[n]);
}
printf("\n");
}
}
}

输出:
1 6 9
169 196 961

#include <math.h>
main()
{int i,j,k,x=0;
float a,b,c,d,e,f;
for(i=1;i<=9;i++);
for(j=1;j<=9;j++);
for(k