用c语言编写一个比较两个整数大小的子函数,在主函数中通过函数指针调用该函数,并传值得到正确结果的代码。
时间: 2024-02-22 21:54:51 浏览: 118
好的,这是你的答案:
```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语言编写一个函数,功能是两个整数数据交换。在主函数中输入两个整数,调用前面函数后,输出交换后的这两个整数。
以下是用C语言编写的交换两个整数的函数:
```c
#include <stdio.h>
void swap(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
int main()
{
int a, b;
printf("请输入两个整数:\n");
scanf("%d%d", &a, &b);
printf("交换前:a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("交换后:a = %d, b = %d\n", a, b);
return 0;
}
```
在上面的代码中,我们使用了指针来交换两个整数,因为指针可以指向一个变量的地址,并且可以通过指针来访问这个变量。在函数中,我们定义了一个`temp`变量来临时存储一个整数的值,然后将第一个整数的值赋给第二个整数,将第二个整数的值赋给第一个整数,从而实现两个整数的交换。在主函数中,我们输入了两个整数,调用了`swap`函数,并输出了交换后的两个整数。
c语言编写一个函数,功能是两个整数数据交换。在主函数中输入两个整数,调用前面函数后,输出交换后的这两个整数。
可以定义一个交换函数,如下所示:
```c
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
这个函数的参数是两个指向整数的指针,作用是交换两个整数。在函数内部,我们需要定义一个临时变量来存储其中一个整数的值,然后将这个整数的值赋给另一个整数,再将临时变量的值赋给第一个整数,完成交换操作。
在主函数中,我们可以先输入两个整数,然后调用交换函数进行交换,最后再输出交换后的两个整数,如下所示:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x, y;
printf("请输入两个整数:");
scanf("%d %d", &x, &y);
swap(&x, &y); // 调用交换函数
printf("交换后的两个整数为:%d %d\n", x, y);
return 0;
}
```
运行程序,输入两个整数,程序会输出交换后的两个整数。
阅读全文
相关推荐













