清雨染墨衣420 2021-12-27 17:14 采纳率: 50%
浏览 65

关于#输出格式#的问题,如何解决?

7-1 解方程 (10 分)
求解一元二次方程ax2+bx+c=0。输入a、b、c的值(a、b、c均为整数且a≠0),计算并输出方程的解x(保留3位小数)。如果方程无实数解,输出“no real solution”。

输入格式:
输入a、b、c的值(a、b、c均为整数,且a≠0)

输出格式:
输出方程的解,如果有实数解,保留3位小数,输出格式参照样例。如果方程无实数解,输出“no real solution”。

输入样例1:
1 4 3
结尾无空行
输出样例1:
x1=-3.000
x2=-1.000
结尾无空行
输入样例2:
1 -2 1
结尾无空行
输出样例2:
x=1.000

  • 写回答

1条回答 默认 最新

  • Admini$trat0r 新星创作者: 后端开发技术领域 2021-12-27 17:27
    关注
    31.求解一元二次方程 ax2+bx+c=0 的跟(a 不等于 0),a,b,c 均为实数,其值由键盘输入。
    #include<math.h>
    #include<stdio.h>
    #include<conio.h>
    main() {
        double a,b,c;
        double s,x1,x2;
        printf("please enter a,b,c:\n");
        scanf("%lf%lf%lf",&a,&b,&c);
        if(a>=-(1e-6)&&a<=(1e-6))
            printf("sorry!you have a wrong numbera.\n");
        else {
            s=b*b-4*a*c;
            if(s>(1e-6)) {
                x1=(-b+sqrt(s))/(2*a);
                x2=(-b-sqrt(s))/(2*a);
                printf("there are two different
                       real:\nx1=%5.2f,x2=%5.2f\n",x1,x2);} else if(s>=-(1e-6)&&s<=(1e-6)) {
                                          x1=x2=-b/(2*a);
                       printf("there are two equal
                              real:\nx1=x2=%5.2f\n",x1);
            } else {
                s=-s;
                x1=-b/(2*a);
                x2=fabs(sqrt(s)/(2*a));
                printf("there are two different complex:\n");
    
                printf("x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",x1,x2,x1,x2);
            }
        }
        getch();
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月27日