答案需要保留两位小数,请各位帮忙看看代码是哪里有问题
用%d输出没问题 但一保留小数全是0
2条回答 默认 最新
- LLZWHS 2023-10-17 20:46关注
运算中使用浮点型常量,或者将整型变量赋值给浮点型变量。这样会导致隐式类型提升,将整型转换为浮点型。
你定义的全是整型变量,如果不用强制类型转换,需要在运算过程中使用浮点型常量比如乘以个1.0,才能将结果转换成浮点数,从而实现保留小数
#include <stdio.h> #include <math.h> int main() { int a = 0; int b = 0; int c = 0; double x, y; printf("请输入a、b、c的值:"); scanf("%d %d %d", &a, &b, &c); int discriminant = b * b - 4 * a * c; if (discriminant > 0) { x = (-b + sqrt(discriminant)) / (2 * a); y = (-b - sqrt(discriminant)) / (2 * a); } else if (discriminant == 0) { x = y = -b / (2.0 * a); } else { printf("方程无实根\n"); return 0; } printf("方程的解为: %.2f, %.2f\n", x, y); return 0; }
解决 1无用
悬赏问题
- ¥15 关于#hadoop#的问题,请各位专家解答!
- ¥15 如何批量抓取网站信息
- ¥15 Spring Boot离线人脸识别
- ¥15 NRF24L01能发送但是不能接收
- ¥15 想问一下这种情况怎么解决呢(关键词-file)
- ¥15 python Flassk 模块部署 服务器时报错
- ¥15 Opencv(C++)异常
- ¥15 VScode上配置C语言环境
- ¥15 汇编语言没有主程序吗?
- ¥15 这个函数为什么会爆内存