C语言表达式怎么计算?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言表达式怎么计算?相关的知识,希望对你有一定的参考价值。

表达式 1+3>3&&5%2==1 的结果为?

先计算左边的不等式1+3>3是成立的

右边的不等式5%2==1,其中%表示的意思是%前面的数除以%后面的数,并算出这个式子的余数,所以5除以2得2,余数为1。

但是在c语言中等于号是==,不是=

如a=1是赋值语句,不是表示a等于1。

因此5%2==1式子也成立

式子中的&&表示且的意思,要左边和右边的式子都成立,整个句子就真;

有一个式子不成立,或者两个式子都不成立就假。c语言中用1表示真,用0表示假,此时式子左右两边均成立,因此返回值为1

计算具体过程

参考技术A

这个就是考察运算符优先级,也就是先计算谁,后计算谁, 可以看我下面的截图,优先级从上到下从高变低, 高优先级的优先运算。

1+3>3&&5%2==1 可以等价这个((1+3)> 3)&& ((5%2)== 1)

这个上面加括号是因为括号的优先级最高, 这样不知你能理解不。


参考技术B 回答

首先定义两个变量a和b。

加法写成a+b。

减法写成a-b。

乘法写成a*b。

除法写成a/b。

取余写成a%b。

最后点击编译运行即可看到相应的结果。

参考技术C C语言表达式的计算顺序是按照运算符优先级和结合性的规则进行的,具体规则可以参考C语言的运算符优先级表。一般来说,先计算括号内的表达式,然后按照优先级从高到低的顺序依次计算各个运算符之间的表达式。如果优先级相同,则按照结合性进行计算。
对于表达式 1+3>3&&5%2==1,根据运算符优先级和结合性的规则,先计算加法运算 1+3,得到结果 4;然后计算关系运算符 >,得到结果 1,因为 4 大于 3;接着计算逻辑运算符 &&,根据短路规则,由于前面的结果已经是真值,所以只需要计算后面的表达式 5%2==1,得到结果 1,因为 5 除以 2 的余数是 1,与 1 相等;最终表达式的结果是 1。
因此,表达式 1+3>3&&5%2==1 的结果为 1。
参考技术D

1+3等于4,4>3为真(1),5%2等于1,1==1为真(1),1&&1等于1,结果为1。

C++或C语言如何将字符串转化为数学表达式

我想用C++编个24点游戏,用户输入答案只能输入字符串呀,然后怎么让计算机判断其值呢?要重点考虑有括号情况,高手帮我一下,具体点,不胜感激
括号的问题怎么解决啊?输入的字符串长度都不一样!

1、C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。
头文件:stdlib.h
函数原型:int atoi(const char* nptr);

2、举个例子:
char *str="123";
int num=atoi(str);
执行后,num的值被初始化为123
参考技术A 由于是教育类,只能输入100个字符,下次这种问题最好归入编程类,可输入1000字符。有个思路。如没括号的式子:5+3*1-6/3就是分两次遍历,第一次遇到*、/直接运算为数值,第二次加减运算。括号可用函数写。又满了无语本回答被提问者采纳 参考技术B 数据结构的书上是这么说的:首先为每个符号设定优先级,然后弄两个栈,一个是数字的,一个是括号和运算符的。 参考技术C 可以利用逆波兰表达式http://zhidao.baidu.com/question/8121037.html 参考技术D 可用中缀表达式转后缀计算阿

以上是关于C语言表达式怎么计算?的主要内容,如果未能解决你的问题,请参考以下文章

这个有大于小于号的c语言计算,怎么算。a b的值是啥?

C语言表达式求值

C语言中计算逗号表达式c=(a=7,b=a+2,b+1),并且输出a,b,c的值是啥意思啊?求解

C语言逗号表达式问题?

C语言如何计算c = a+++b?

c++指数函数怎么表达