如何知道c语言中的算术表达式是合法的?

以这些为例,请高手解释下怎么判断是否合法
25/3%2
-14%3
+9/4+5
15.25+-5.0
7.5%3
(5/3)*3+5%3
14%3+7%2
21%(int)4.5

第5个不合法
7.5%3
%求模运算要求两个运算对象都是整型数据
其他都是合法的表达式
表达式计算的结果由运算过程中运算对象的数据类型决定,相同数据类型数据进行运算,结果保持原有数据类型,不同数据类型数据运算,结果为精度高的数据类型。
你提供的表达式中,虽然有用除法运算的结果进行求模运算,但是除了第5个表达式外,其他表达式进行除法运算的运算对象全部都是整数,所以他们的运算结果都是整数(小数部分自动省略),进行后续运算没有问题。追问

以这题为例 21%(int)4.5 的是怎么算的呢?

追答

(int)是强制类型转换
所以(int)4,.5 的结果就是将4.5强制转换为整型数据
在转换后进行求模运算就没有问题了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-23
%,这个符号前后一定是整数Int型,像(int )4.5是强制转换也是可以的,但是这个括号必须写在你要强制转换对像的前面,很多时候他为了迷惑你,会写在后面。其他没有什么合法不合法之说了。
第2个回答  2013-03-23
你每个题目是想实现什么?》追问

就是判断这样的语句有没有错误

追答

看你要得到什么了,比如说第一题是 25 除以 3 取整数部分得 8 ,再是 8 除以 2 取余数部分,最后得 0

追问

恩,第一题是可以得出0这个结果的,所以这条语句是正确的。
我想知道这些题目能不能得出结果,如果得不出结果就是错的喽。

追答

额,基本都能得到结果,就看能不能得到你想要的结果了。比如说,你想要得到15除以2得到7.5,但是你写了15/2,或者15%2,都是不对的,应该是15/2.0,这么说,能懂吗?

第3个回答  推荐于2017-09-11
1、表达式计算的结果由运算过程中运算对象的数据类型决定,相同数据类型数据进行运算,结果保持原有数据类型,不同数据类型数据运算,结果为精度高的数据类型。
2、表达式中,虽然有用除法运算的结果进行求模运算,但是除了第5个表达式外,其他表达式进行除法运算的运算对象全部都是整数,所以他们的运算结果都是整数(小数部分自动省略),进行后续运算没有问题。

如何知道c语言中的算术表达式是合法的?
第5个不合法 7.5%3 求模运算要求两个运算对象都是整型数据 其他都是合法的表达式 表达式计算的结果由运算过程中运算对象的数据类型决定,相同数据类型数据进行运算,结果保持原有数据类型,不同数据类型数据运算,结果为精度高的数据类型。你提供的表达式中,虽然有用除法运算的结果进行求模运算,但是除了...

在C语言中如何判断算术表达式的合理性?
itos是我自己封装后用于C++的string,在C语言中可以直接用的,具体用法去看看MSDN吧,我也不能一下子说清,我只给个思路,按照这思路应该可以帮到你 我就回答这么多吧,分给我行不?

判断C语言算术表达式的合法性
核心算法: 算符优先分析法 其他就是基本编程了。

如何判断C语言算术表达式的合法性
什么表达式啊?条件判断的等于是两个上等号“==” 在复制运算的时候左值不能是常量。。好多好多的。。

判断C语言算术表达式的合法性
我晕,又是数据结构的东西。。。自己去看一下《数据结构》(C语言版)(严蔚敏 吴伟民)堆栈 那一节,有个表达式求值的详细的类C伪代码和说明

C语言 随机生成10个加法算式,输入每个算式的计算结果,判断计算是否正确...
default:break;}return result;}int main(){int a1, b1, c1,jieguo,shuru;int jishu = 0;int secore=0;srand((unsigned)time(NULL));for (int i = 0; i < 3000; i++){a1 = rand() % 100;b1 = rand() % 100;c1 = rand() % 4;jieguo = ChoiceFunc(a1, b1, c1)...

c语言代码
具体来说,如果i等于g的平方加上s的立方除以1000,再加上b的四次方除以1000000,程序会输出i的值。这段代码的核心逻辑是通过取模运算获取每位数,然后通过复杂的算术表达式进行验证。它展示了如何在C语言中进行数值操作和条件判断。通过阅读和理解这段代码,我们可以学习到如何使用循环结构和算术运算来实现...

在C语言的if语句中,用做判断的表达式是什么表达式
例如,代码`int a =5;if(a)语句块`在C\/C++中是合法的。但C#语言中,由于其更严格的语法规范,类似代码无法通过编译。故在C\/C++中选择逻辑表达式时,算术表达式是不适用的。关系表达式的结果为逻辑值,如`int a=5, b=6;a>b`,结果为逻辑值false,但false亦可视为逻辑值或逻辑表达式。算术表达式...

c语言的表达式类型有哪些
算术表达式是C语言中最基本的表达式类型,它包括了加、减、乘、除和取模等基本运算。例如,"a + b"、"a * b"、"a \/ b"和"a % b"都是算术表达式,其中"a"和"b"是变量,"+"、"-"、"*"、"\/"和"%"是运算符。关系表达式用于比较两个值的大小关系,其结果是一个布尔值,即真(非0)...

在C语言中,表达式5>3&&2||8<4-!0的值为()。
1)正常思路:由于逻辑运算符优先级别低于比较运算符同时这两种都低于算术运算符,因此先考虑后半部分,4-!0 真值为1, 而8<1的真值为0.再考虑或左边的表达式,5>3&&2显然真值为1最终结果为 1||0 当然结果为12) 有 || 将表达式分成两部分 左边的是 5>3&&2 显然其真值为1 因此 1 || ...

相似回答