为什么会出现这个错误&引用;ch1.c:12:错误:调用对象‘;a-b’;不是一个函数;

为什么会出现这个错误&引用;ch1.c:12:错误:调用对象‘;a-b’;不是一个函数;,c,C,我正在为一本编程书做一个简单的挑战,它要求输出公式f=(a)的结果− b) (十)− y) 使用单个printf()函数。我得到了这个错误:“错误:被调用的对象‘a-b’不是函数” 代码如下: #include <stdio.h> main() { int a = 5; int b = 1; int x = 10; int y = 5; printf("\nThe result of f = %d\n",

我正在为一本编程书做一个简单的挑战,它要求输出公式f=(a)的结果− b) (十)− y) 使用单个printf()函数。我得到了这个错误:“错误:被调用的对象‘a-b’不是函数”

代码如下:

#include <stdio.h>

 main()
 {
       int a = 5;
       int b = 1;
       int x = 10;
       int y = 5;

       printf("\nThe result of f = %d\n", (a-b)(x-y));
}
#包括
main()
{
INTA=5;
int b=1;
int x=10;
int y=5;
printf(“\n f=%d\n”的结果,(a-b)(x-y));
}

C/C++不允许像数学中那样的隐式乘法。所以你需要使用*:

printf("\nThe result of f = %d\n", (a-b) * (x-y) );
                                         ^
                                   insert * here

现在,
(a-b)
被视为一个函数调用,其单个参数为
x-y
。当然,
a-b
不是一个函数,因此您会看到所看到的错误。

C/C++不允许像数学中那样的隐式乘法。所以你需要使用*:

printf("\nThe result of f = %d\n", (a-b) * (x-y) );
                                         ^
                                   insert * here

现在,
(a-b)
被视为一个函数调用,其单个参数为
x-y
。当然,
a-b
不是一个函数,因此您得到的是您看到的错误。

您是在尝试乘法吗?如果是,请更改:

 printf("\nThe result of f = %d\n", (a-b)(x-y));


“*”是至关重要的。这是乘法运算符。围绕整个事情的额外参数并不是真正需要的,我只是想把整个方程都绑在它们里面,使之整洁

你是在尝试乘法吗?如果是,请更改:

 printf("\nThe result of f = %d\n", (a-b)(x-y));


“*”是至关重要的。这是乘法运算符。围绕整个事情的额外参数并不是真正需要的,我只是想把整个方程都绑在它们里面,使之整洁

main()
应该是
int-main(void)
。这会有什么区别,因为我正在读的书只使用main()而不是int-main(void),它是可移植的,并且不会永远依赖于编译器实现古代方言。该标准要求每个托管实现都提供int-main(void)和int-main(int-argc,char*argv[])作为入口点,实现可能允许其他入口点,因此这两个入口点是唯一可以安全使用的。
main()
应该是
int-main(void)
。这会有什么区别,因为我正在阅读的这本书只使用main()而不是int main(void),所以它是可移植的,并且不会永远依赖编译器来实现古代方言。该标准要求每个托管实现都提供int-main(void)和int-main(int-argc,char*argv[])作为入口点,实现可能允许其他入口点,因此这两个入口点是唯一可以安全使用的。@nastyn8,如果答案解决了您的问题,您应该(除了投票)单击投票箭头下的复选标记。@nastyn8,如果答案解决了您的问题,您应该(除了投票)单击投票箭头下的复选标记。