输入三个数按从小到大的顺序输出要求用指针
时间: 2023-03-20 22:00:49 浏览: 220
好的,以下是使用指针来按照从小到大的顺序输出三个数的代码:
```
#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
#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` 函数用于交换两个数的值,参数使用指针类型可以直接修改原变量的值。
输入三个整数按从小到大顺序输出
有两种方法可以实现输入三个整数按从小到大顺序输出的功能。第一种方法是常规计算,需要引入第四个变量作为中间存储空间进行转换。具体步骤如下:
1. 输入三个整数。
2. 判断第一个数和第二个数的大小,如果第一个数大于第二个数,则交换两个数的值。
3. 判断第一个数和第三个数的大小,如果第一个数大于第三个数,则交换两个数的值,此时第一个数为最小值。
4. 判断第二个数和第三个数的大小,如果第二个数大于第三个数,则交换两个数的值,此时第三个数为最大值。
5. 按照从小到大的顺序输出三个数。
第二种方法是指针计算,不需要引入第四个变量,具体步骤如下:
1. 输入三个整数。
2. 定义三个指针分别指向三个整数。
3. 编写一个函数,用于比较两个数的大小并交换它们的值。
4. 编写另一个函数,用于比较三个数的大小并调用第一个函数进行交换。
5. 在主函数中调用第二个函数,按照从小到大的顺序输出三个数。