2.用指针实现两个数值交换(由大到小输出)
时间: 2024-02-16 20:02:44 浏览: 25
好的,下面是用指针实现两个数值交换的代码(由大到小输出):
```c
#include <stdio.h>
void swap(int *a, int *b);
int main()
{
int x, y;
printf("请输入两个整数:\n");
scanf("%d %d", &x, &y);
swap(&x, &y);
printf("交换后的结果为:\n");
printf("%d %d\n", x, y);
return 0;
}
void swap(int *a, int *b)
{
int temp;
if (*a < *b)
{
temp = *a;
*a = *b;
*b = temp;
}
}
```
在这个程序中,我们定义了一个 `swap` 函数,它接受两个指向整数的指针作为参数,并使用指针来交换这两个整数的值。在 `main` 函数中,我们首先输入两个整数,然后调用 `swap` 函数来交换它们的值。最后,我们按照从大到小的顺序输出这两个整数。
相关问题
写一个子函数,实现两整数数值交换的功能。在主函数中输入3个数,要求通过三次调用子函数实现由大到小的顺序输出。(请用指针的知识完成题目)
以下是实现两整数数值交换的子函数:
```
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = 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 ;
}
```
1. 利用指针变量*p1,*p2对整型变量a和b赋值、数值交换及输出。
好的,以下是代码示例:
```c++
#include <iostream>
using namespace std;
int main() {
int a, b, temp;
int *p1, *p2;
// 给a和b赋值
a = 10;
b = 20;
// 输出a和b的值
cout << "a的值为:" << a << endl;
cout << "b的值为:" << b << endl;
// 通过指针变量p1和p2进行交换操作
p1 = &a;
p2 = &b;
temp = *p1;
*p1 = *p2;
*p2 = temp;
// 输出交换后的a和b的值
cout << "交换后,a的值为:" << a << endl;
cout << "交换后,b的值为:" << b << endl;
return 0;
}
```
在上面的代码中,我们定义了两个整型变量a和b,并且定义了两个指针变量p1和p2。然后我们通过指针变量p1和p2来对a和b进行赋值、数值交换及输出。