标题:求解,为什么输出结果与理想不符,哪里出错了?
只看楼主
tiantan929
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-3-27
结帖率:66.67%
 问题点数:0 回复次数:2 
求解,为什么输出结果与理想不符,哪里出错了?
/*
用do...while 计算一元二次方程。并证明do...while 主要用于人机交互
*/

#include<stdio.h>
#include<math.h>
int main(void)
{
    double a, b, c;
    double x1, x2;
    double delta;
    char ch;

    do
    {   
        printf("请输入一元二次方程的三个系数:\n");
        printf("a = ");
        scanf("%lf", &a);
        
        printf("b = ");
        scanf("%lf", &b);
        
        printf("c = ");
        scanf("%lf", &c);
        
        delta = b * b - 4 * a * c;
        
        if(delta > 0)
        {
            x1 = (-b + sqrt(delta))/(2 * a);
            x2 = (-b - sqrt(delta))/(2 * a);
            printf("有两个解,x1 = %lf, x2 = %lf\n", x1, x2);
        }
        else if(0 == delta)
        {
            x1 = x2 = (-b) /(2 * a);
            printf("有唯一解,x1 = x2 = %lf",x1, x2);
        }
        else
        {
            printf("该函数没有解\n");
        }
        printf("是否需要继续验证?(Y/N)");
        scanf(" %c\n", &ch);
    }
    while('y'==ch || 'Y'==ch);

    return 0;
}

输出结果如下:

请输入一元二次方程的三个系数:
a = 1
b = 5
c = 6
有两个解,x1 = -2.000000, x2 = -3.000000
是否需要继续验证?(Y/N)y
1
请输入一元二次方程的三个系数:
a = b = 5
c = 6
有两个解,x1 = -2.000000, x2 = -3.000000
是否需要继续验证?(Y/N)n
1

--------------------------------
Process exited after 13.94 seconds with return value 0
请按任意键继续. . .

搜索更多相关主题的帖子: 结果 方程 printf scanf 继续 
2018-04-18 22:06
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:540
专家分:1158
注 册:2016-9-17
得分:0 
怎么不符了
a=1 b=5 c=6 没错啊
(x+2)(x+3)=0
x=-2,x=-3


穷举是最暴力的美学
2018-04-18 23:18
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
得分:0 
printf("有唯一解,x1 = x2 = %lf",x1, x2);
2018-04-18 23:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486180-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.193671 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved