用c语言编写一个比较两个整数大小的子函数,在主函数中通过函数指针调用该函数,并传值得到正确结果的代码。
时间: 2024-02-22 19:54:51 浏览: 41
好的,这是你的答案:
```c
#include <stdio.h>
int compare(int a, int b) {
if (a > b) {
return 1;
} else if (a < b) {
return -1;
} else {
return 0;
}
}
int main() {
int a = 5;
int b = 7;
int (*fp)(int, int) = &compare;
int result = (*fp)(a, b);
printf("%d\n", result); //输出-1
return 0;
}
```
在这个示例中,我们定义了一个名为`compare`的函数来比较两个整数的大小。该函数返回1,-1或0,分别表示第一个整数大于,小于或等于第二个整数。
在主函数中,我们声明了两个整数`a`和`b`,并将它们分别设置为5和7。然后,我们定义了一个指向`compare`函数的函数指针`fp`,并将其设置为指向`compare`函数。最后,我们使用`fp`调用`compare`函数,并传递`a`和`b`的值作为参数。该函数返回结果将存储在`result`变量中,并将其输出到控制台。
希望这个示例对你有所帮助!
相关问题
请用C语言编写如下程序:设计一个子函数,将任意2个整数交换,并在主函数中调用此函数。
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1, num2;
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);
printf("交换前:num1=%d, num2=%d\n", num1, num2);
swap(&num1, &num2);
printf("交换后:num1=%d, num2=%d\n", num1, num2);
return 0;
}
```
注意:在 `swap` 函数中,使用指针来传递变量的地址,实现对变量的交换。在调用 `swap` 函数时,需要将变量的地址传递给函数,即 `swap(&num1, &num2)`。
c语言用指针法编写子函数swap(),实现2个整数之间的交换,在主函数中调用该函数。
好的,我知道你的问题了。以下是用指针法编写的`swap()`函数的代码:
```c
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
```
在主函数中调用该函数的代码如下:
```c
int main()
{
int x = 5, y = 10;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
```
在这个示例中,我们定义了两个整数`x`和`y`,然后将它们的地址传递给`swap()`函数。`swap()`函数使用指针法交换了`x`和`y`的值,然后我们在主函数中打印出了交换后的值。