调用函数求解方程在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);
}

```

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);
}



#include<stdio.h>
#include<math.h>
float a,b,c;
float x1,x2,disc;
 void twojie(float,float);//声明
 void onejie(float,float);
int main()
{
    printf("输入方程的三个系数\n");
    scanf("%f%f%f",&a,&b,&c);
   twojie(a,b);
  onejie(a,b);

  1. 语法问题
  2. onejie(),twojie()里为什么没有c?