#defineMIN(x,y)(x)>(y)?(x):(y)#d
#define MIN(x,y) (x)>(y)?(x):(y)#define T(x,y,r) x*r*y/4 main(){int a=1,b=3,c=5,s1,s2 ; s1=MIN(a=b,b-a); s2=T(a++,a*++b,a+b+c) ;printf("%d %d",s1,s2); }我算的s2值27或者36不知道哪一个对,为啥上机是35了??求大佬指点一下
又不知是哪家落后的教材出这种无知的题目,明确告知你,这个题目没有标准答案的,它的结果与编译器有关,只有出题者自己对C本身都没有了解的人才会出这种题目的
因为结果不确定,所以对结果的任何分析都没有意义
以下是我电脑上的编译器对你程序编译后的结果(结果与C标准无关)
1.用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.31.30919 版
3 28
2. gcc (Rev2, Built by MSYS2 project) 10.3.0
3 35 (与你上机结果相同,你机上的编译器应该是gcc的)
3.Embarcadero C++ 7.60 for Win32
3 28
4.Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
3 27
5.Embarcadero C++ 7.60 for Win64 Copyright (c) 2012-2021 Embarcadero Technologies, Inc.
3 35
6.lcc-win 2016 May 23
3 35
以下是部分结果的测试画面
热门标签: