zoukankan      html  css  js  c++  java
  • 用C求解一元二次方程的解,遇到的问题及解决办法 分类: C语言 20120313 00:26 3094人阅读 评论(0) 收藏

    编写的一个C语言程序,求解一元二次方程,遇到了很多问题

    #include <stdio.h>
    #include <math.h>
    
    int main ()
    {
        int a=3;
        int b=4;
        int c=5;
        printf("请输入二次方系数");
        scanf("%d",&a);
        printf("请输入一次方系数");
        scanf("%d",&b);
        printf("请输入常数项系数");
        scanf("%d",&c);
        
        double delt;
        double X1;
        double X2;
        
        delt=b*b-4*a*c;
        
        if(delt>0)
        {
                  X1=((-b)+sqrt(delt))/2a;
                  X2=((-b)-sqrt(delt))/2a;
                  printf("一元二次方程的根是X1=%f,X2=%f\n",X1,X2);
        } 
        if(delt=0)
        {
                  X1=(-b)/2a;
                  X2=X1;
                  printf("一元二次方程有两个相等的根X1=X2=%f\n",X1);
        }
        if(delt<0)
        {
                  printf("一元二次方程无解\n");
        }
        return 0;
    }

    编译的时候DEV C++报错的的情况如下:


    修改过以后的代码,运行正常

    #include <stdio.h>
    #include <math.h>
    
    int main ()
    {
        float a;
        float b;
        float c;
        
        printf("请输入一元二次方程的系数");
        scanf("a=%f,b=%f,c=%f",&a,&b,&c);
        
        double delt;
        double X1;
        double X2;
        
        delt=b*b-4*a*c;
        
        if(delt>0)
        {
                  X1=((-b)+sqrt(delt))/(2*a);
                  X2=((-b)-sqrt(delt))/(2*a);
                  printf("一元二次方程的根是X1=%f,X2=%f\n",X1,X2);
        } 
        if(delt=0)
        {
                  X1=(-b)/(2*a);
                  X2=X1;
                  printf("一元二次方程有两个相等的根X1=X2=%f\n",X1);
        }
        if(delt<0)
        {
                  printf("一元二次方程无解\n");
        }
        
    
        system("pause");
        return 0;
    }
    

    总结:

    1)在最后的returne 0; 和主程序之间加一个system("pause");或者getchar();可以看到程序的运行结果,知道,在键盘上任意输入一个字符;

    2)在C语言程序设计中如果是乘法不应该省略“*”,在任何情况下都应该使用“*”来表示乘法;

    3)scanf("a=%f,b=%f,c=%f",&a,&b,&c);中&a指a在内存中的地址;按照a,b,c在内存中的地址将a,b,c的值存进去,变量a,b,c的地址是在编译连接阶段分配的;

    scanf("a=%f,b=%f,c=%f",&a,&b,&c);

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    字符编码
    数据类型
    流程控制之判断,while循环,for循环
    数据类型,与用户交互,格式化输出,基本运算符
    操作系统,编程语言分类,执行python两种方式,变量,内存管理,定义变量的三个特征
    计算机硬件基础-笔记
    20200714_31adb命令和monkey压力稳定性测试
    20200707_28POM
    20200705_27DDT与Yaml数据驱动
    20200702_26UnitTest套件与运行器
  • 原文地址:https://www.cnblogs.com/yisuowushinian/p/4715668.html
Copyright © 2011-2022 走看看