#include "stdio.h" main() { int a=7,b=7,c=100; for(;c<=999;c++) {if(a*a+b*b==c) printf("\n%d",c); a++; if(a*a+b*b==c) printf("\n%d",c); b++; } }
这个程序的意图是输出能写成两数平方之和的所有三位数,但不知为何没有结果??
#include <stdio.h> #include <math.h> main() { int a,b,c,d,k; k=0; d=(100+999)/2; d=sqrt(d); for(a=1;a<=d;a++) {for(b=d;b<=sqrt(999);b++) {c=a*a+b*b; if(c>100&&c<999) {printf("%6d",c); k++;} if(k%10==0)printf("\n"); } } }
我不太明白你为什么将a,b都赋值为7? 我以为可以这样写:(个人意见) main() {int a,b,c=0,k=0; a=1; while(a<=31) {b=1; while(b<=31) {c=a*a+b*b; if((c>=100) && (c<=999)) {printf("%4d",c);k++; if(k%15==0) printf("\n");} b++;} a++;}}
[此贴子已经被作者于2004-07-27 14:02:43编辑过]
我也来乱贴一个
main() { int a,b; for(a=1;a<=32;a++) for(b=1;b<=32;b++) if((a*a+b*b)<999 && (a*a+b*b)>=100) printf("%d*%d + %d*%d =%d\n",a,a,b,b,(a*a+b*b)); }
[此贴子已经被作者于2004-07-27 13:00:55编辑过]