编写函数void swap(int *pa,int *pb)交换两个变量的值,在主函数中输入3个整数,通过调用swap函数,实现将3个整数由小到大的顺序输出。
时间: 2023-04-28 12:00:27 浏览: 173
好的,下面是代码实现:
```
#include <stdio.h>
void swap(int *pa, int *pb) {
int temp = *pa;
*pa = *pb;
*pb = temp;
}
int main() {
int a, b, c;
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
if (a > b) {
swap(&a, &b);
}
if (a > c) {
swap(&a, &c);
}
if (b > c) {
swap(&b, &c);
}
printf("从小到大的顺序为:%d %d %d\n", a, b, c);
return ;
}
```
首先在主函数中输入三个整数,然后通过调用swap函数,将三个数按从小到大的顺序排列。swap函数中使用指针来交换两个变量的值,主函数中则通过if语句来判断大小关系,从而实现排序。最后输出排序后的结果。
相关问题
输入2个整数a和b,交换它们的值。要求定义和调用函数swap( int *pa, int *pb)实现。 # include <stdio.h> void swap ( int *pa, int *pb ); int main( ) { int a, b; scanf ( "%d%d", &a, &b); swap ( ); printf("%d %d\n", a, b); } void swap ( int *pa, int *pb ) { ; /* 定义整型变量 temp */ ;
好的,下面是实现这个功能的代码:
```
#include <stdio.h>
void swap(int *pa, int *pb);
int main()
{
int a, b;
scanf("%d%d", &a, &b);
swap(&a, &b);
printf("%d %d\n", a, b);
return 0;
}
void swap(int *pa, int *pb)
{
int temp;
temp = *pa;
*pa = *pb;
*pb = temp;
}
```
在这个代码中,我们定义了一个 `swap` 函数,它接收两个指向整数的指针作为参数,并交换它们所指向的变量的值。在 `main` 函数中,我们声明了两个整数变量 `a` 和 `b`,并通过 `scanf` 函数从标准输入中读取了它们的值。然后,我们调用了 `swap` 函数,将指向 `a` 和 `b` 的指针传递给了它。最后,我们打印出交换后的 `a` 和 `b` 的值。
任意输入两个整数,编写三个函数分别实现:(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
阅读全文