一元二次方程,运算符的优先级

字符串处理函数

作业:求一元二次方程的根

//

//  main.c

//  一元二次方程求解

//

//  Created by 丁小未 on 13-7-9.

//  Copyright (c) 2013年 dingxiaowei. All rights reserved.

//

#include <stdio.h>

#include <math.h>

float O(float a,float b,float c)

{

    float res = b*b-4*a*c;

    if(res<0)

    {

        return -1;

    }

    else

    {

        return res;

    }

}

int main(int argc, const char * argv[])

{

    float a,b,c;

    char flag='y';

    printf("*******欢迎使用一元二次方程求根系统***************\n");

    do

    {

    do {

        printf("\n`请输入一元二次方程的a,b,c参数(例如1,4,4):");

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

    } while (0==a);

    

    float res;

    float x,y;

    res=O(a, b, c);

    if (res<0)

    {

        printf("方程无解!");

    }

    if(b*b==4*a*c)

    {

        x=(-b)/2*a;

        printf("方程的解:X=Y=%.2f",x);

    }

    if(res>0)

    {

        x=(-b+sqrtf(res))/2*a;

        y=(-b-sqrtf(res))/2*a;

        printf("方程的解:\nX=%.2f\nY=%.2f",x,y);

    }

    printf("\n您想继续吗?(y/n)");

    flag = getchar();  //要输入两次是清除之前获取到的留在缓存中的'\n'

    flag = getchar();

    }while ('y'==flag);

    return 0;

}

 

运算符的先后顺序(整理)


优先级


运算符


名称或含义


使用形式


结合方向


说明


1


[]


数组下标


数组名[常量表达式]


左到右


()


圆括号


(表达式)/函数名(形参表)


.


成员选择(对象)


对象.成员名


->


成员选择(指针)


对象指针->成员名


2


-


负号运算符


-表达式


右到左


单目运算符


(类型)


强制类型转换


(数据类型)表达式


++


自增运算符


++变量名/变量名++


单目运算符


--


自减运算符


--变量名/变量名--


单目运算符


*


取值运算符


*指针变量


单目运算符


&


取地址运算符


&变量名


单目运算符


!


逻辑非运算符


!表达式


单目运算符


~


按位取反运算符


~表达式


单目运算符


sizeof


长度运算符


sizeof(表达式)


3


/



表达式/表达式


左到右


双目运算符


*



表达式*表达式


双目运算符


%


余数(取模)


整型表达式/整型表达式


双目运算符


4


+



表达式+表达式


左到右


双目运算符


-



表达式-表达式


双目运算符


5


<<


左移


变量<<表达式


左到右


双目运算符


>>


右移


变量>>表达式


双目运算符


6


>


大于


表达式>表达式


左到右


双目运算符


>=


大于等于


表达式>=表达式


双目运算符


<


小于


表达式<表达式


双目运算符


<=


小于等于


表达式<=表达式


双目运算符


7


==


等于


表达式==表达式


左到右


双目运算符


!=


不等于


表达式!= 表达式


双目运算符


8


&


按位与


表达式&表达式


左到右


双目运算符


9


^


按位异或


表达式^表达式


左到右


双目运算符


10


|


按位或


表达式|表达式


左到右


双目运算符


11


&&


逻辑与


表达式&&表达式


左到右


双目运算符


12


||


逻辑或


表达式||表达式


左到右


双目运算符


13


?:


条件运算符


表达式1? 表达式2: 表达式3


右到左


三目运算符


14


=


赋值运算符


变量=表达式


右到左


/=


除后赋值


变量/=表达式


*=


乘后赋值


变量*=表达式


%=


取模后赋值


变量%=表达式


+=


加后赋值


变量+=表达式


-=


减后赋值


变量-=表达式


<<=


左移后赋值


变量<<=表达式


>>=


右移后赋值


变量>>=表达式


&=


按位与后赋值


变量&=表达式


^=


按位异或后赋值


变量^=表达式


|=


按位或后赋值


变量|=表达式


15


,


逗号运算符


表达式,表达式,…


左到右


从左向右顺序运算 

说明:

同一优先级的运算符,运算次序由结合方向所决定。

简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

不用第三个参数实现a,b互换

方法一:

a=a+b;

b=a-b;

a=a-b;

方法二:

a=a^b;

b=a^b;

a=a^b;

时间: 2024-12-10 03:27:24

一元二次方程,运算符的优先级的相关文章

使用一元二次方程做实时动画

使用一元二次方程做实时动画 效果: 原理(图中坐标略有错误,仅供参考-_-!!):   YXMath.h + YXMath.m // // YXMath.h // // http://home.cnblogs.com/u/YouXianMing/ // // Copyright (c) 2014年 Y.X. All rights reserved. // #import <Foundation/Foundation.h> @interface YXMath : NSObject /*----

vb.net运算符的优先级

在每个表达式中进行操作时,每一部分的运算都要按着一定的顺序进行计算,这个顺序就是运算的优先顺序,也叫运算符的优先级. 在表达式中,若运算符不只一种时,首先处理算术运算符,然后是比较运算符,最后是逻辑运算符.同一种运算符中,单目运算符的优先级高于双目运算符.优先级相同的运算符,按从左到右的顺序进行处理(求指运算除外). 字符串连接运算符(&)不是运算符,但就其优先级而言,它排在所有算术运算符之后,以及所有比较运算符之前. 还可以使用括号来改变有限顺序,强制命令表达式中的某些部分优先执行.在括号内部

java运算符的优先级

运算符的优先级决定了存在多个运算符时一个表达式各部分的计算顺序. Java对计算顺序作出了特别的规定. 其中,最简单的规则就是乘法和除法在加法和减法之前完成.程序员经常都会忘记其他优先级规则,所以应该用括号明确规定计算顺序. 例如: A = X + Y - 2/2 + Z; 为上述表达式加上括号后,就有了一个不同的含义. A = X + (Y - 2)/(2 + Z);

C语言运算符及其优先级汇总表口诀

由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的   C语言运算符及其优先级汇总表口诀 圆下箭头一顿号 非凡增减富强针地长 三乘除,四加减,五移位 千万别把鱼忘记,它在盛饭的厨子里 小灯大灯灯灯不等 爸喂鱼,舅疑惑,裸鸡也疑惑 十三姨,十四父,十五逗,兜到低 "圆下箭头一顿号"指的是第15级的运算符.其中圆指的是运算符(),下指的是下标运算符[],箭头

在线一元二次方程计算器实例

 在线一元二次方程式计算器实例分享,大家参考使用吧  代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="utf-8"> <title>在线一元二次方程式计算器</title> </head> <body> <form name="fqua

c语言-一元二次方程C语言编写问题

问题描述 一元二次方程C语言编写问题 #include <stdio.h> #include <math.h> void main() {float abc; scanf(""%f%f%f""abc); if(b*b-4*a*c<0) printf(""无实根 ""); if(b*b-4*a*c==0) printf(""%.4f %.4f ""-b/2*a

解一元二次方程 数据类型用float与double结果不同

问题描述 解一元二次方程 数据类型用float与double结果不同 #include #include main() { float a,b,c,d,r,x,x1,x2; scanf("%f %f %f",&a,&b,&c); r=b*b-4*a*c; d=2*a; if(a==0||b==0) printf("Input error!n"); if(r>0) printf("x1=%fnx2=%fn",(-b+s

代码分析-c++ 求解一元二次方程

问题描述 c++ 求解一元二次方程 假定有一元二次方程ax^2+bx+c=0,其各项系数分别为a,b,c,依次输入a,b,c的值(均为实数),输出该方程对应的解x1和x2 注意:(1)当a为0时,求解一次方程:(2)二次方程需考虑有一个解.两个实数解和两个复数解的情况 输入:0.0 1.0 2.0 输出:x=-2.0 输入:0.0 0.0 1.0 输出:方程无解 输入:0.0 0.0 0.0 输出:无穷多解 输入:1.0 -5.0 6.0 输出:x1=2.0 x2=3.0 输入:1.0 -8.0

c++编写求解一元二次方程组根问题

问题描述 c++编写求解一元二次方程组根问题 总时间限制: 1000ms 内存限制: 65536kB 描述 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0. 输入输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2 + bx + c =0的系数.输出输出一行,表示方程的解. 若两个实根相等,则输出形式为:x