输入三个数按从小到大的顺序输出要求用指针
时间: 2023-03-20 09:00:49 浏览: 262
好的,以下是使用指针来按照从小到大的顺序输出三个数的代码:
```
#include <stdio.h>
void sort(int *a, int *b, int *c) {
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
if (*a > *c) {
int temp = *a;
*a = *c;
*c = temp;
}
if (*b > *c) {
int temp = *b;
*b = *c;
*c = temp;
}
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
sort(&a, &b, &c);
printf("从小到大的顺序输出为:%d %d %d\n", a, b, c);
return 0;
}
```
在这个程序中,sort函数接受三个指针参数,指向输入的三个整数变量。sort函数使用三个if语句来比较这三个变量的值,并通过交换指针所指向的变量的值来将它们按从小到大的顺序排序。
在main函数中,首先通过scanf函数读取三个整数。然后调用sort函数来对它们进行排序。最后使用printf函数输出排好序的三个整数。
相关问题
c语言中输入三个数a,b,c,按从小到大顺序输出,要求用指针方法实现
好的,我来为您解答这个问题。
您可以按照以下步骤实现:
1. 定义三个变量 a、b、c,并通过 scanf() 函数从键盘输入这三个数。
2. 定义三个指针变量 pa、pb、pc,分别指向 a、b、c。
3. 定义一个指针数组 p[3],并将指针变量 pa、pb、pc 的地址分别存储到数组中。
4. 对 p 数组进行排序,即将指针变量的地址按照所指向的值的大小进行交换。
5. 输出排序后的三个数。
下面是代码实现:
```c
#include <stdio.h>
void swap(int **p1, int **p2) {
int *tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
int main() {
int a, b, c;
int *pa, *pb, *pc;
int *p[3];
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
pa = &a;
pb = &b;
pc = &c;
p[0] = pa;
p[1] = pb;
p[2] = pc;
for (int i = 0; i < 2; i++) {
for (int j = i + 1; j < 3; j++) {
if (*p[i] > *p[j]) {
swap(&p[i], &p[j]);
}
}
}
printf("排序后的结果为:%d %d %d\n", *p[0], *p[1], *p[2]);
return 0;
}
```
希望能对您有所帮助!
利用指针变量将输入三个整数按从小到大顺序输出
好的,可以尝试以下代码:
```c
#include <stdio.h>
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 0;
}
```
在主函数中,我们先读入三个整数,然后通过 `swap` 函数将它们按从小到大排序,最后输出结果即可。这里 `swap` 函数用于交换两个数的值,参数使用指针类型可以直接修改原变量的值。
阅读全文