求大佬帮忙看看,为什么复数i不能正确使用?整个程序好像还有点什么错误

weixin_45003333 2019-06-09 09:51:14
#include <stdio.h> #include<math.h> int main() { char i=sqrt(-1); float a, b, c,x1,x2,D; printf("请输入a,b,c"); scanf_s("%f %f %f", &a, &b, &c); D = b * b - 4 * a*c; if (D < 0) { x1 = (-b + sqrt(-D)*i ) / (2 * a); x2 = (-b - sqrt(-D)*i )/ (2 * a); printf("该函数有两个不相等的虚数根x1=%f,x2=%f", x1, x2); } else { if (D = 0) { x1 = x2 = -b / (2 * a); printf("该函数有两个相等的实数根x1=x2=%f", x1=x2); } else { x1 = (-b + sqrt(D)) / (2 * a); x2 = (-b - sqrt(D)) / (2 * a); printf("该函数有两个不相等的实数根x1=%f,x2=%f", x1, x2); } } return 0; }
...全文
57 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2019-06-10
  • 打赏
  • 举报
回复
if (D = 0)

这里应该是判断语句的,所以改成如下试试:
if (D == 0)
weixin_45003333 2019-06-10
  • 打赏
  • 举报
回复
引用 2 楼 吖如的回复:
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,x1,x2,judge;
printf("please input three coefficient:");
scanf("%f,%f,%f",&a,&b,&c);
if(a==0)
printf("not one yuan quadratic equation");
else
{
judge=b*b-4*a*c;
if(judge<0)
printf("no roots");
else if (judge==0)
printf("x1=x2=%f",(-b)/(2*a));
else
printf("x1=%f,x2=%f",((-b)+sqrt(b*b-4*a*c))/(2*a),((-b)+sqrt(b*b-4*a*c))/(2*a));
}
}
当b²-4ac<0,该怎么弄呢?
吖如 2019-06-09
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,x1,x2,judge;
printf("please input three coefficient:");
scanf("%f,%f,%f",&a,&b,&c);
if(a==0)
printf("not one yuan quadratic equation");
else
{
judge=b*b-4*a*c;
if(judge<0)
printf("no roots");
else if (judge==0)
printf("x1=x2=%f",(-b)/(2*a));
else
printf("x1=%f,x2=%f",((-b)+sqrt(b*b-4*a*c))/(2*a),((-b)+sqrt(b*b-4*a*c))/(2*a));
}
}
lunhui2016 2019-06-09
  • 打赏
  • 举报
回复
-1开啥方啊,sqrt()要求的参数为非负数

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧