本题要求实现一个函数swap,实现两个整数的交换。 函数接口定义: void swap ( int *a, int *b );
时间: 2024-03-27 10:36:28 浏览: 167
好的,我的回答如下:
在 C/C++ 中,可以通过指针来实现两个变量的交换。具体实现代码如下:
```cpp
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
在这个函数中,`a`和`b`是指向整数变量的指针,`*a`和`*b`则代表这两个整数变量的值。函数的实现思路就是利用一个临时变量 `temp` 来存储一个整数变量的值,然后将其中一个整数变量的值赋给另一个整数变量,最后再将 `temp` 中的值赋给另一个整数变量,从而完成两个整数变量的交换。
相关问题
任意输入两个整数,编写三个函数分别实现:(1)计算两个数的加法和;(2)计算两个整数的减法差;(3)交换这两个整数的数值。要求用“函数指针”调用这三个函数,结果在主函数中输出。目前已编写完成main函数,请编程实现sum函数、minus函数和swap函数,函数功能和要求如下所示。 /* @Filename: ex601.c @Author: Ju Chengdong @Version: 1.0 @Date: 2021-03-18 @Description: Simple Application of Pointer */ #include <stdio.h> /*主函数*/ int main(void){ int sum(int *a, int *b); int minus(int *a, int *b); void swap(int *a, int *b); int a, b; int *pa = &a, *pb = &b; scanf("%d,%d", &a, &b); int (*p)(int *, int *); p = sum; printf("%d", (*p)(pa, pb)); p = minus; printf("\n%d", (*p)(pa, pb)); void (*q)(int *,int *); q = swap; (*q)(pa, pb); printf("\n%d,%d", a, b); return 1; } /* * 函数名称:sum * 函数功能:对两个整数进行加法计算 * 形式参数:a,整型指针 * 形式参数:b,整型指针 * 返 回 值:int型,为两个整数的加法和 */ int sum(int *a, int *b){ //请编程实现本函数 } /* * 函数名称:minus * 函数功能:对两个整数进行减法计算 * 形式参数:a,整型指针 * 形式参数:b,整型指针 * 返 回 值:int型,为两个整数的减法差 */ int minus(int *a, int *b){ //请编程实现本函数 } /* * 函数名称:swap * 函数功能:交换两个整数数值 * 形式参数:a,整型指针 * 形式参数:b,整型指针 * 返 回 值:无 */ void swap(int *a, int *b){ //请编程实现本函数 } 注:不得使用全局变量。
完成代码如下:
```c
#include <stdio.h>
int sum(int *a, int *b); // 声明sum函数
int minus(int *a, int *b); // 声明minus函数
void swap(int *a, int *b); // 声明swap函数
int main(void){
int a, b;
int *pa = &a, *pb = &b;
scanf("%d,%d", &a, &b);
int (*p)(int *, int *);
p = sum;
printf("%d", (*p)(pa, pb));
p = minus;
printf("\n%d", (*p)(pa, pb));
void (*q)(int *,int *);
q = swap;
(*q)(pa, pb);
printf("\n%d,%d", a, b);
return 1;
}
int sum(int *a, int *b){
return *a + *b; // 返回a和b的和
}
int minus(int *a, int *b){
return *a - *b; // 返回a和b的差
}
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp; // 交换a和b的值
}
```
运行结果:
输入:5,3
输出:8
2
3,5
用c语言交换两个整数的值,函数接口定义:void fun (int *a,int *b);
下面是交换两个整数的值的 C 语言代码:
```c
void fun(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
调用这个函数时,传入两个整数的地址即可:
```c
int main() {
int a = 1, b = 2;
printf("Before swap: a = %d, b = %d\n", a, b);
fun(&a, &b);
printf("After swap: a = %d, b = %d\n", a, b);
return 0;
}
```
输出:
```
Before swap: a = 1, b = 2
After swap: a = 2, b = 1
```
阅读全文