题目
本题是谭浩强《C程序设计课后习题》题8.1。
题目:
输入3个字符串,要求按由小到大的顺序输出。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
1.首先定义3个变量用于接收要排序的数组,并输入数据。
2.定义3个指针变量,指向刚刚定义的3个变量的地址。格式:int *p=&n,或者
int *p;
p=&n;(int *是类型)
3,然后进行交换,交换的思路是让第一个里放最小的,最后一个放最大的数。
算法:1和2,3比,把最小数交换到1中,2和3比,把最小数放到2中,3就是最大的了。
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
void swap(int* p1, int* p2)//交换函数
{
int tmp;
tmp = *p1; *p1 = *p2; *p2 = tmp;
}
int main()
{
int n1, n2, n3;
int* p1, * p2, * p3;
printf("请输入三个数:");
scanf("%d %d %d", &n1, &n2, &n3);
p1 = &n1; p2 = &n2; p3 = &n3;
if (n1 > n2)swap(p1, p2);
if (n1 > n3)swap(p1, p3);
if (n2 > n3)swap(p2, p3);
printf("%d %d %d", n1, n2, n3);
return 0;
}
三、执行结果
输出:
请输入三个数:2 1 0
0 1 2