这个程序居然没有结果??求助!!
先看题目;把6个互不相等的正整数a、b、c、d、e、f分成两组,若这两个数组具有以下两个相等特性: a+b+c=d+e+f=s 且 a^2+b^2+c^2=d^2+e^2+f^2=s2,人们把这类数组(a,b,c)与(d,e,f)称为神秘3元数组。
设计程序求出给定s的所有神秘3元数组(约定a<b<c, d<e<f, a<d)。例如,(1,5,6)与(2,3,7)就是s=12的神秘3元数组:1+5+6=2+3+7=12;1^2+5^2+6^2=2^2+3^2+7^2=62。
Input
输入一个正整数s。
Output
输出满足条件的所有神秘3元数组。
Sample Input
18
Sample Output
(1,7,10):(2,5,11)
(1,8,9):(3,4,11)
(2,7,9):(3,5,10)
(3,7,8):(4,5,9)
先不考虑输出格式,我的程序不出现结果啊:
#include<stdio.h>
int main()
{
int sum,i,j,k,d,s[100][3],jj,other,x1,x2,x3,x4,x5,x6;
scanf("%d",&sum);
d=sum/3;
for(i=1;i<d;i++){
for(j=i+1;j<sum;j++){
for(k=j+1;k<sum;k++){
if((i+j+k)==sum)
{
s[i-1][0]=i;s[i-1][1]=j;s[i-1][2]=k;
}
}
}
} /*这一步之前没有问题*/
for(jj=0;jj<20;jj++){
for(other=jj+1;other<20;other++){
x1=s[jj][0]*s[jj][0];x2=s[jj][1]*s[jj][1];x3=s[jj][2]*s[jj][2];
x4=s[other][0]*s[other][0];x5=s[other][1]*s[other][1];x6=s[other][2]*s[other][2];
if((x1+x2+x3)==(x4+x5+x6)&&x1<x4){
printf("%d,%d,%d,%d,%d,%d\n",x1,x2,x3,x4,x5,x6);
}
}
} /*这个循环看起来,没问题啊;*/
return 0;
}
求高手::