写一个函数接收两个参数并返回差异

时间:2018-01-23 17:30:20

标签: c

编写一个调用函数minus()的C程序。此函数接收两个参数并返回差异(常规减法,而不是绝对减法)。这种差异应该打印在屏幕上。

我的代码是:

int minus(int a,int b)
{
    int c = a - b;
    return c;
}
int main()
{
    int a = 4; int b = 5;
    minus(a,b);
    printf("%d", minus);
    return 0;
}

我有两个问题:

1.为什么a和b in

int minus(int a,int b)

在Visual Studio中是灰色的吗? “int”是蓝色但是a和b是灰色的。 enter image description here 我得到了这个结果,但它应该是-1。

enter image description here

有人可以帮我吗

4 个答案:

答案 0 :(得分:1)

您在使用%d格式说明符打印函数指针时有未定义的行为。 (您使用了错误的格式说明符,这就是未定义行为的原因。)

您最希望的方式是printf("%d", minus(a,b));。您想要打印减法的结果而不是函数指针本身。

答案 1 :(得分:1)

  1. ab是灰色的,因为编辑器会自动着色代码以帮助说明程序语法。这一开始可能看起来很有趣,但是,随着时间的推移,你的大脑将习惯于它,而错误颜色的东西将会脱颖而出。这将帮助您在程序中发现错误 - 当您输入错误时,应该是关键字的内容将像参数名称一样着色,您可能会注意到它的颜色错误并仔细查看您键入的内容。

  2. printf("%d", minus);中,minus只是函数。它不是函数返回的值。要打印函数返回的值,请使用printf("%d", minus(a, b));

答案 2 :(得分:0)

您错过了作业

int minus(int a,int b)
{
    int c = a - b;
    return c;
}
int main()
{
    int a = 4; int b = 5;
    int d = minus(a,b);
    printf("%d", d);
    return 0;
}

答案 3 :(得分:-2)

you called the function minus() but you did not take the value returned by function in any variable so when you try to print minus then it will return the pointer value of function. so to get the correct answer hold the return value in variable and then print it int c = minus(a,b); printf("%d", c); or you can call the minus function inside the print function like this printf("%d", minus()); as a beginner i will suggest you to implement the first suggestion it will increase the capacity to use statements in c.