问一个c语言的题目

来源:百度知道 编辑:UC知道 时间:2024/05/18 23:11:53
下面这段程序是关于任意输入两个数,求这两个数的平方根之和
#include<math.h>
main()
{int x,y;
float z;
printf("please input two numbers:");
scanf("%d,%d",&x,&y);
x=sqrt(x);
y=sqrt(y);
z=x+y;
printf("%f",z);
}怎么运行后结果总是不对,请高手帮我

#include "stdio.h"
#include "math.h"
int main(void)
{
int x,y;
float z;
printf("please input two numbers:");
scanf("%d,%d",&x,&y);
z=sqrt(x)+sqrt(y);
printf("%f",z);
}

唉···你尝试看看吧
你原先连stdio.h都没添加···
而且你那x和y都是int类型
会直接截断小数部分
唉···最近我很没激情

为什么不使用强制类型转换?
Z为float,x,y 为INT类型
而且,你不用STDIO.H?

x=sqrt(x);
sqrt算出来是浮点型,赋给整型之后小数点后面就被截断了
可以把x=sqrt(x);y=sqrt(y);z=x+y; 这三行直接合并成
z=sqrt(x)+sqrt(y);

#include "stdio.h"
#include<math.h>
main()
{int x,y;
float z;
printf("please input two numbers:");
scanf("%d,%d",&x,&y);
x=(int)sqrt(x);
y=(int)sqrt(y);
z=(float)(x+y);
printf("%f",z);
}

呵呵,我的编译器不准把float和int相互转换勒,我说它欠扁

少了#include<stdio.h>

我感觉#include<stdio.h> 可以省略,不过你的x,y的定义不对,你应该把它定义成float