c语言中x+a%3*(int)(x+y)%2/4 x=2.5 a=7 y=4.7

请问一下 这个的详细算法怎么算的 谢谢了哈 比如2/4是什么意思

解题步骤:

1、(int)(2.5+4.7)=(int)(7.2)=7,式子变 x + a%3 *7 %2/4;

2、a%3=1,式子变 x + 1 *7 %2/4;

3、1*7=7,式子变 x + 7 %2/4;

4、7 %2=1,式子变 x+1/4;

5、1/4 整数除整数的除法先做,商得 0,式子变 x + 0;

6、x+0=2.5 + 0=2.5,答案2.5。

字符解释:

(int)(x+y) -- 括号里的先做

2/4 -- 整数2除以整数4,得整数0,但这里前面还有运算符%,所以你不能先做2除以4的整数除法。

% 是整数与整数的除法求余数运算,得余数,(略去商)。

2.0/4.0 -- 浮点数除以浮点数,得浮点数的商 0.5。


扩展资料:

C语言算术编程示例:

#include <stdio.h>

int main()

{

int a = 21;

int b = 10;

int c ;

c = a + b;

printf("Line 1 - c 的值是 %d\n", c );

c = a - b;

printf("Line 2 - c 的值是 %d\n", c );

c = a * b;

printf("Line 3 - c 的值是 %d\n", c );

c = a / b;

printf("Line 4 - c 的值是 %d\n", c );

c = a % b;   printf("Line 5 - c 的值是 %d\n", c );

c = a++;  // 赋值后再加 1 ,c 为 21,a 为 22

printf("Line 6 - c 的值是 %d\n", c );

c = a--;  // 赋值后再减 1 ,c 为 22 ,a 为 21

printf("Line 7 - c 的值是 %d\n", c );

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
(int)(x+y) -- 括号里的先做,(int)(2.5+4.7)=(int)(7.2)=7.
式子变 x + a%3 *7 %2 /4;
a%3 -- a=7; 7除3 取余数,余数得1,
式子变 x + 1 *7 %2 /4;
1 *7 乘法先做 得 7
式子变 x + 7 %2 /4;
7 %2 -- 除2 取余数运算,余数得1,
式子变 x + 1 /4;
1 /4 整数除整数的除法先做,商得 0
式子变 x + 0;
实型数加法,2.5 + 0, 得 2.5
答案 2.5
--------------------------------
2/4 -- 整数2除以整数4,得整数0,但这里前面还有运算符%,所以你不能先做2除以4的整数除法!
% 是 整数与整数的 除法 求余数 运算,得余数,(略去商)
2.0/4.0 -- 浮点数除以浮点数,得浮点数的商 0.5本回答被提问者和网友采纳