鱼C论坛

 找回密码
 立即注册
查看: 2260|回复: 9

一元二次方程根

[复制链接]
发表于 2016-7-19 17:36:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题,编写完之后,结果一直不对,求解,谢谢啦。
#include <stdio.h>
#include <math.h>
float x1,x2,k,i,j;
int main ()
{
        void f1 ();
        void f2 ();
    void f3 ();
        float a,b,c;
        printf ("请输入三个数字,以逗号隔开:\n");
        scanf ("%lf,%lf,%lf",&a,&b,&c);
        k=b*b-4*a*c;
        
        printf ("方程的根为:\n");
if (k>0)
        {
                f1 (a,b);
            printf("x1=%f\tx2=%f\n", x1,x2);
        }
     
else if (k==0)
        { 
                f2 (a,b);
                printf("x1=%f\tx2=%f\n", x1,x2);
        }
                
     else
         {
                 f3 (a,b);
                 printf("x1=%f+%fi\tx2=%f-%fi\n", i,j,i,j);
         }
     
        return 0;
}
void f1 (float x ,float y)
{

        x1=(-y+sqrt(k))/(2*x);
        x2=(-y-sqrt(k))/(2*x);

}

void f2 (float x ,float y)
{
        
        x1=-y/(2*x);
        x2=-y/(2*x);

}
void f3 (float x ,float y)
{

   i=-y/(2*x);
   j=sqrt(-k)/(2*x);

}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-19 18:57:17 | 显示全部楼层
本帖最后由 Krant5 于 2016-7-19 19:01 编辑
#include <stdio.h>
#include <math.h>
float x1,x2,k,i,j;
void f1 (float x ,float y);
void f2 (float x ,float y);
void f3 (float x ,float y);
int main ()
{

        float a,b,c;
        printf ("请输入三个数字,以逗号隔开:\n");
        scanf("%f,%f,%f",&a,&b,&c);
        k=b*b-4*a*c;

        printf ("方程的根为:\n");
if (k>0)
        {
                f1 (a,b);
            printf("x1=%f\tx2=%f\n", x1,x2);
        }

else if (k==0)
        {
                f2 (a,b);
                printf("x1=%f\tx2=%f\n", x1,x2);
        }

     else
         {
                 f3 (a,b);
                 printf("x1=%f+%fi\tx2=%f-%fi\n", i,j,i,j);
         }

        return 0;
}
void f1 (float x ,float y)
{

        x1=(-y+sqrt(k))/(2*x);
        x2=(-y-sqrt(k))/(2*x);

}

void f2 (float x ,float y)
{

        x1=-y/(2*x);
        x2=-y/(2*x);

}
void f3 (float x ,float y)
{

   i=-y/(2*x);
   j=sqrt(-k)/(2*x);

}
QQ截图20160719185643.png

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-19 22:42:41 | 显示全部楼层
#include <stdio.h>
#include <math.h>
float x1,x2,k,i,j;
void f1 (float x ,float y);
void f2 (float x ,float y);
void f3 (float x ,float y);
int main ()
{
        float a,b,c;
        printf ("请输入三个数字,以逗号隔开:\n");
        scanf ("%f,%f,%f",&a,&b,&c);
        k=b*b-4*a*c;
        printf ("方程的根为:\n");
if (k>0)
        {
                f1 (a,b);
            printf("x1=%f\tx2=%f\n", x1,x2);
        }
     
else if (k==0)
        { 
                f2 (a,b);
                printf("x1=%f\tx2=%f\n", x1,x2);
        }
                
     else
         {
                 f3 (a,b);
                 printf("x1=%f+%fi\tx2=%f-%fi\n", i,j,i,j);
         }
     
        return 0;
}
void f1 (float x ,float y)
{

        x1=(-y+sqrt(k))/(2*x);
        x2=(-y-sqrt(k))/(2*x);

}

void f2 (float x ,float y)
{
        
        x1=-y/(2*x);
        x2=-y/(2*x);

}
void f3 (float x ,float y)
{

   i=-y/(2*x);
   j=sqrt(-k)/(2*x);

}
关键是scanf后面要用%f而不是%lf 输入时加上小数点。
C:\Users\Administrator\Desktop

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-19 22:43:53 | 显示全部楼层
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-7-21 08:57:43 | 显示全部楼层

膜拜一下大神啊,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-21 09:14:15 | 显示全部楼层
疾风。意破天晴 发表于 2016-7-19 22:42
关键是scanf后面要用%f而不是%lf 输入时加上小数点。
void f1 ();
void f2 ();
void f3 ();

大神,为什么开头我不能在主函数内调用定义无参函数?上一个案例定义空函数,就可以运行了因为换电脑了,文档找不到了,没法提交上来。现在正在学主函数的调用问题。求解,是不是以后都要在主函数内定义调用函数的参数?。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-22 17:38:39 | 显示全部楼层
C语言的话:如果你要调用一个函数有两种情况  1:是你把函数的声明与定义放在了一个头文件里,就是include""。
2:是你要在main函数前面先声明函数,然后再定义。
反正就是不管怎么样子,一定要在main函数前定义函数,如果你不写参数,那么编译器会默认是int类型参数,如果你不加  ,  那就是默认为一个int类型参数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

头像被屏蔽
发表于 2016-7-23 11:50:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-23 22:59:37 | 显示全部楼层
疾风。意破天晴 发表于 2016-7-22 17:38
C语言的话:如果你要调用一个函数有两种情况  1:是你把函数的声明与定义放在了一个头文件里,就是include" ...

感谢你的热心答复,祝你生活愉快
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-24 08:18:01 | 显示全部楼层

感谢你的热心帮助,真心谢过了, 学C的路不大好走啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 06:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表