回 帖 发 新 帖 刷新版面

主题:朋友们帮忙看看这个程序哪里出了问题好吗

#include <stdio.h>
#include <math.h>
void main()
{
    int a,b;
    float m,n,x1,x2;
    scanf("%d,%d",&a,&b);
    m=b*b-4*a*c;
    if(m>=0)
    {
        n=sqrt(b*b-4*a*c);
        x1=(-b+n)/(2*a);
        x2=(-b-n)/(2*a);
        printf("%f,%f",x1,x2);
    }
    else
        printf("方程无实解");
}

回复列表 (共8个回复)

沙发

问题就是你没说出了什么问题

板凳

问题是你的n是什么东西

3 楼

return语句呢

4 楼

主要问题是你的scanf("%d,%d",&a,&b);,%d与%d之间不能有逗号,你看一下书。然后要输入三个值,你少输入了c,如果考虑得全面一点,a,b,c全为浮点数更好。下面是我修改后的代码。

#include <stdio.h>
#include <math.h>
void main()
{
    float a,b,c;
    float x1,x2;
        float m;
        float n;
    scanf("%f %f %f",&a,&b,&c);
    m=(b*b-4*a*c);
        if(a == 0)
            printf("only root:%f\n",-c/b);
        else{
                if( m < 0)
                 printf("方程无实解\n");
              else{
                      n=sqrt(b*b-4*a*c);
                        if( n > 0){
                          x1=(-b+n)/(2*a);
                  x2=(-b-n)/(2*a);
                          printf("Two different roots:\n");
                  printf("root one:%f,root two%f\n",x1,x2);
                       }
                       else
                          printf("two same roots:%f\n",(-b/(2*a)));
              }
            }
    
}

5 楼

谢谢

6 楼

变量C都没有定义。。。

7 楼


本人是大一新生、学的是c++。你那个else 面怎么还有(y<0)?这个好像没没有的吧

8 楼

#include <stdio.h>
#include <iostream>
#include <cmath>

void main()
{
    int a,b,c;
    float m,n,x1,x2;
    scanf("%d%d%d",&a,&b,&c);
    m=b*b-4*a*c;
    if(m>=0)
    {
        n=sqrt(m);
        x1=(-b+n)/(2*a);
        x2=(-b-n)/(2*a);
        printf("%f,%f",x1,x2);
    }
    else
        printf("方程无实解");
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册