习2:输入3个整数,按由小到大的顺序输出。比如输入的数据分别置于变量n1、n2和n3中,经过比较和交换最后使得n1中的数据最小,n3中的数据最大,按由小到大的顺序输出,即按n1、n2和n3的顺序输出。数据的交换用自定义函数swap实现,函数的参数要求使用指针变量。
时间: 2024-10-24 16:04:09 浏览: 35
C语言程序设计课件:第3章c语言的数据类型、表达式及输入输出.ppt
要实现这个功能,你可以按照以下步骤编写C程序:
1. 定义一个`swap`函数,接收两个整数指针作为参数,用于交换它们所指向的值。
```c
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
2. 主函数`main`里,首先获取用户输入的三个整数并存储在`n1`, `n2`, 和 `n3` 中。
```c
#include <stdio.h>
int main() {
int n1, n2, n3;
printf("Enter three integers: ");
scanf("%d %d %d", &n1, &n2, &n3);
```
3. 使用`swap`函数对这三个变量进行排序。我们可以采用一种常见的解决方案,即使用两个临时变量辅助完成排序过程。这里我们先假设`n1`是最小的,然后依次检查其他两个数是否更小,并根据情况调用`swap`函数。
```c
// 如果n2比n1小,交换它们
if (n2 < n1) {
swap(&n1, &n2);
}
// 再次检查n3是否大于n1(现在可能是最大的),如果大于,则交换
if (n3 > n1) {
swap(&n1, &n3);
}
if (n2 < n3) { // 如果n2仍然小于n3,再交换它们
swap(&n2, &n3);
}
// 输出排序后的结果
printf("The numbers in ascending order are: %d, %d, %dn", n1, n2, n3);
return 0;
}
```
阅读全文