杂化轨道VSEPR 2021-07-16 11:30 采纳率: 93.3%
浏览 63
已采纳

调用函数求解方程在disc>0的情况下输出一直为0




#include<stdio.h>
#include<math.h>
float a,b,c;
float x1,x2,disc;
int main()
{
    void twojie(float,float);//声明
    void onejie(float,float);
    printf("输入方程的三个系数\n");
    scanf("%f%f%f",&a,&b,&c);
    disc=b*b-4*a*c;
    printf("disc is%5.2f\n",disc);
    if(disc>0)
    {
        void twojie(float a,float b);//调用
        printf("解是%5.2f%5.2f",x1,x2);
    }
    else if(disc==0)
    {
        void yigejie(float a,float b);
        printf("解是%5.2f",x1);
    }
    else if(disc<0)
    {
        
        printf("无解");
    }
    return 0;
    
}
void twojie(float a,float b)//定义
{
    x1=(-b+sqrt(disc))/(2*a);
    x2=(-b-sqrt(disc))/(2*a);
}
void yigejie(float a,float b)
{
    x1=x2=(-b)/(2*a);
}

```

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-07-16 11:33
    关注

    if(disc>0)
    {
    void twojie(float a,float b);//调用
    printf("解是%5.2f%5.2f",x1,x2);

    改为:你现在是又定义了函数,而不是调用函数阿
    if(disc>0)
    {
    twojie(a,b);//调用
    printf("解是%5.2f%5.2f",x1,x2);

     
     
    #include<stdio.h>
    #include<math.h>
    float a,b,c;
    float x1,x2,disc;
    int main()
    {
        void twojie(float,float);//声明
        void onejie(float,float);
        printf("输入方程的三个系数\n");
        scanf("%f%f%f",&a,&b,&c);
        disc=b*b-4*a*c;
        printf("disc is%5.2f\n",disc);
        if(disc>0)
        {
            twojie(a,b);//调用
            printf("解是%5.2f%5.2f",x1,x2);
        }
        else if(disc==0)
        {
             onejie(a,b);
            printf("解是%5.2f",x1);
        }
        else if(disc<0)
        {
            printf("无解");
        }
        return 0;
    }
    void twojie(float a,float b)//定义
    {
        x1=(-b+sqrt(disc))/(2*a);
        x2=(-b-sqrt(disc))/(2*a);
    }
    void onejie(float a,float b)
    {
        x1=x2=(-b)/(2*a);
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月16日
  • 修改了问题 7月16日
  • 创建了问题 7月16日