用指针将三个数按大小顺序输出
时间: 2024-02-23 20:58:32 浏览: 23
好的,以下是用指针将三个数按大小顺序输出的代码示例:
```c++
#include <iostream>
using namespace std;
void sort(int* a, int* b, int* c) {
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
if (*b > *c) {
int temp = *b;
*b = *c;
*c = temp;
}
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
}
int main() {
int a, b, c;
cout << "请输入三个数: ";
cin >> a >> b >> c;
sort(&a, &b, &c);
cout << "按大小顺序输出: " << a << " " << b << " " << c << endl;
return 0;
}
```
这段代码中,我们定义了一个 `sort` 函数,它接受三个指向整型变量的指针,将它们按从小到大的顺序排序。在 `main` 函数中,我们先读入三个数,然后将它们的地址传递给 `sort` 函数进行排序,最后输出排序后的结果。
相关问题
使用C语言实现:从键盘输入三个数a b c按大小顺序输出,要求用指针实现数据的交换
下面是使用指针实现三个数按照大小顺序输出的C语言代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a, b, c;
printf("请输入三个整数:");
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("按大小顺序输出:\n%d %d %d", a, b, c);
return 0;
}
```
首先定义了一个 `swap` 函数,用于交换两个整数。在 `main` 函数中,先通过 `scanf` 函数从键盘输入三个整数,然后使用冒泡排序的方法将它们按照大小顺序排列。具体来说,先比较 `a` 和 `b` 的大小,如果 `a` 大于 `b`,则交换它们的值;然后比较 `a` 和 `c` 的大小,如果 `a` 大于 `c`,则交换它们的值;最后比较 `b` 和 `c` 的大小,如果 `b` 大于 `c`,则交换它们的值。最终输出排好序的三个整数。在交换值的过程中,使用了指针来实现。
将三个整数按从小到大的顺序输出
有两种方法可以将三个整数按从小到大的顺序输出:
1. 常规计算法:比较三个数的大小,然后交换它们的位置,最终输出即可。
2. 指针函数调用法:同样是比较三个数的大小,但是使用指针函数调用来交换它们的位置,最终将结果存储在一个数组中,再输出即可。
以下是两种方法的具体实现:
方法一:常规计算法
```
#include <stdio.h>
int main(){
int a,b,c,t;
printf("请输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b){
t=a;
a=b;
b=t;
}
if(a>c){
t=a;
a=c;
c=t;
}
if(b>c){
t=b;
b=c;
c=t;
}
printf("%d %d %d",a,b,c);
return 0;
}
```
方法二:指针函数调用法
```
#include <stdio.h>
int arr[3];
int *fun(int *a,int *b,int *c){
int t;
if(*a>*b){
t=*a;
*a=*b;
*b=t;
}
if(*a>*c){
t=*a;
*a=*c;
*c=t;
}
if(*b>*c){
t=*b;
*b=*c;
*c=t;
}
arr[0]=*a;
arr[1]=*b;
arr[2]=*c;
return arr;
}
void main(){
int a,b,c;
printf("请输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
fun(&a,&b,&c);
printf("%d %d %d",arr[0],arr[1],arr[2]);
}
```