-
房东你好。 替换为以下内容**:
#include
#define p 3
定义 f(x) (p*(x)*(x)) 宏定义参数不应类型化,也不能使用返回语句,宏定义是替换。
此外,如果 x 是一个独立的项,则需要添加括号:不,下面的 f(3+5) 不会给你你期望的结果,192
void main()
printf("%d",f(3+5));
希望对你有帮助。
-
#define f(x) (p*x*x)
它应该这样写。 这是一个宏,而不是一个函数。 让我们仔细看看宏和函数之间的区别。
另外,你认为应该是 192 但得到 29 吗?
因为宏只是一个直接的替换,例如,像你的程序一样,f(3+5) 在这样之后:
结果不是 29
因此,为了获得正确的结果,您应该像这样更改它:
#define f(x) (p)*(x)*(x))
-
#include
#define p 3
#define f(x) (p*(x)*(x))int main(){
printf("%d",f(3+5));
return 0;
没问题。 输出是。
-
楼上说得很清楚,不过我再说说,define 定义的函数直接替换了,也就是 p
你了解3+5*3+5的替代吗? 这样应该很清楚。
-
未定义该函数。
define 命令是 c 的预处理命令,程序编译只是直接替换 defing 之后的常量名,ctrl+h 摩擦不多,怎么能定义一个函数呢?
当然,程序是错误的。
-
返回后,返回函数。
-
总结。 你好,scanf( %d,&a); 少一个引号不仅是打字错误,也是源程序中的错误。
c 程序的哪个步骤是错误的。
你好,scanf( %d,&a); 少一个引号不仅是打字错误,也是源程序中的错误。
**错。
-
【写完后直接编译,如果出现错误,编译器会自动弹出提示】 示例如下: <>
如上图所示,写入后直接点击编译,然后会弹出一条错误信息,如下图所示
修复错误后,可以再次编译得到正确的输出,如下图所示:
从**本身和运行情况来看,可执行程序的内容与粘贴的**不匹配(可能是修改后没有重新编译,而修改前的**运行,否则不会**现在出现可以编译传递的错误,例如第二行末尾有更多的“op”, 和“现有1人捐款无产出”),修改建议如图所示:
after checking , there are no any furthur message concerning charge be claimed back from cnee . in this way, mentioned charge will be claimed back from shipper i/o cnee . >>>More