简单C语言题:求x²+y²=1000,所有正整数的解:

我的解决方案与代码如下,但结果出错,请各位大神指点,小弟刚学C,谢谢!!!
#include<stdio.h>
#include<math.h>
int main(){
double x,y;
for(y=0;y>=0&&y<=31;y++){
x=sqrt(1000-pow(y,2));
if(int(x)==x)
printf("x=%d,y=%d\n",x,y);
}
return 0;
}

其实你的错误有两个1、不应该是int(x)而是(int)x;明白吗?还有就是一个数据长度的问题我们double型数据应该用%lf而不是%d
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
double x,y;
for(y=0;y>=0&&y<=31;y++)
{
x=sqrt(1000-pow(y,2));
if((int)x==x)
printf("x=%lf,y=%lf\n",x,y);
}
return 0;
}
如果你真的想用代码%d的话你可以这么写
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
double x,y;
for(y=0;y>=0&&y<=31;y++)
{
x=sqrt(1000-pow(y,2));
if((int)x==x)
printf("x=%d,y=%d\n",(int)x,(int)y);
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-07
#include<stdio.h>
#include<math.h>
int main(){
int x,y;
for(x=1;x<sqrt(1000);x++)
{
for(y=1;y<sqrt(1000);y++)
{
if(x*x+y*y == 1000) printf("%d %d\n",x,y);
}
}
return 0;
}本回答被网友采纳
第2个回答  2012-11-07
int main(){
int x,y;
for(x=1;x<=31;x++){
doubule z;
z=sqrt(1000-x*x);
y=int(z);
if(y==z){
printf("x=%d,y=%d\n",x,y);
}
}
return 0;
}
你试试行不行

简单C语言题:求x²+y²=1000,所有正整数的解:
x=sqrt(1000-pow(y,2));if((int)x==x)printf("x=%d,y=%d\\n",(int)x,(int)y);} return 0;}

c语言解一元二次方程
形如x=p或(nx+m)=p(p≥0)的一元二次方程可采用直接开平方的方法解一元二次方程.如果方程化成x²=p的形式,那么可得x=±p;(x²=p,x=±根号p)如果方程能化成(nx+m)=p(p≥0)的形式,那么nx+m=±p。简洁的语言:C语言包含的各种控制语句仅有9种,关键字也只有32个...

C语言编程求满足x<y<z条件下x²+y²+z²=55²有多少组整数解...
首先,我们需要明确题目给出的条件:x<y<z,且 x²+y²+z²=55²。因为 x<y<z,所以我们可以确定 x 的最大值为 18(因为 $19^2+20^2+21^2>55^2$)。因此,我们可以使用三个嵌套的循环来枚举 x、y、z,代码如下:```c int count = 0; \/\/ 记录符合条件的...

c语言的一元二次方程的问题
d=b*b-4*a*c;\/*这个是一元二次方程求解的部分了,建议你如果不懂一元二次方程,先上百度查查一元二次方程到底是怎么回事,我在这里简单说说,求一元二次方程y=ax²+bx+c,先要判断b²-4ac是否大于等于0,如果小于0,这个方程是没有实数解的(虚数一般不用考虑),*\/ \/*因为b²...

(C语言)这个程序想求输入的所有正整数的平均值,为什么一直输出0呢...
您好,很高兴回答您的问题。您这个题目是要求取正整数的和的平均值,定义的整数是整型类型,存放和的变量也是整数类型,,整数值的个数也是整型,但是输出的是平均数,肯定是带有小数的,所以输出的printf函数为printf("%f",1.0*sm\/cnt);这样才能保证输出的平均值为实际结果。

编写C语言,要求输出所有小于等于已正整数且满足条件X的数之和
for(i=1;i<=n;i++)\/\/从1开始加,直到已知正整数n为止 if(fun2(i))sum+=i; \/\/ 判断i是不是满足条件X,如果fun(i)不为0即满足条件X,加到sum里 printf("%d\\n",sum);} PS:上面网友的回答思路是一样的,就是在判断数字是否每一位都不是7的时候只判断了个位数字是否为7,没有判断...

求C语言代码:给定n个正整数,找出它们中出现次数最多的数。
include <stdio.h> int main(void){ int a[10000] = {0};int n;int x;int i;int max=0;scanf("%d",&n);for(i = 0; i < n; i++){ scanf("%d",&x);a[x]++;} for(i = 0; i < 10000; i++){ if( a[max] < a[i])max = i;} printf("%d\\n",max);} ...

c语言的∑怎么使用?
是@sum。例如两个连加的情况,可以这样:@sum(setone(i):@sum(settwo(j):setmember(i,j)))model:sets:ll\/1..1000\/:;endsets calc:s=0;for(ll(i):s=s+i^2);endcalc end Feasible solution found.Total solver iterations: 0 Variable Value S 0.3338335E+09 ...

用c语言 输出1~1000的所有完数
j+=i; } if (j==n) return 1; else return 0;}void main(){ int i,result; for (i=1;i<=1000;i++) { result=ws(i); if (result==1) printf("%d\\n",i); }}

请问这题第二问怎么做,最好能画图帮忙解答?
(1)把 x=0 代入得 c=3,把 x=-1,y=0 代入,得 a=1,所以抛物线解析式是 y=x²+4x+3 。(2)易得 tan∠ABO=3,由于 ∠PAB+∠ABO=180°,所以 tan∠PAB=-tan∠ABO=-3,设 P 坐标为 (m,m²+4m+3),则 kPA=(m²+4m+3-3)\/(m-0)=m+4,kAB=3,...

相似回答