Anonymous 发表于 2024-1-2 22:39:17

刚入学萌新求助

int是整形,那输入的a,b怎么才能转为浮点型?还有为什么我输出结果是负数?

wuliangtdi 发表于 2024-1-2 22:39:18

本帖最后由 wuliangtdi 于 2024-1-3 08:56 编辑

https://pic.imgdb.cn/item/6594b06b871b83018a811b63.jpg
#include <stdio.h>

int main()
{
        double a, b;
        double pi = 3.1415926;
        printf("请输入圆的半径\n");
        scanf("%lf", &a);
        b = pi * a * a;
        printf("圆的面积为: %f", b);
        return 0;
}

FishC 发表于 2024-1-2 22:39:42

你好!要将输入的整型转换为浮点型,可以使用强制类型转换的方法。只需要在变量前面加上浮点型的类型名即可,例如:

a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))

这样,在输入时就会将用户输入的值转换为浮点型。

至于输出结果为负数的问题,请检查你的代码逻辑或运算是否有错误。有时候,输出结果为负数可能是因为运算中出现了减法或乘法计算错误导致的。你可以贴出你的代码和具体的运算表达式,我来帮你看看是不是哪里出了问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

liyifeng295641 发表于 2024-1-3 10:05:38

首先代码出现问题,在代码上找原因。

这是你的代码


我按照你的代码在我的编译器上编译,报错了。


有几个问题:
1.由于a,b的值后面是计算浮点型的,建议改成double。
2.%f,要加上"" = "%f"。
3.scanf输入语句,后面要加&,改成&a。
4.printf输出语句,后面是不要&的,改成f。

改成的代码:


编译后,成功!


源代码:
#include <stdio.h>

int main(){
        double a,b;
        printf("请输入圆的半径:");
        scanf("%lf", &a);
        b = a * a * 3.1415926;
        printf("圆的面积为:%lf", b);
        return 0;
}
页: [1]
查看完整版本: 刚入学萌新求助