正文开始
题目描述:

解题思想:
只需要进行数字间的两两比较,完成数据的有序输出
解题流程:
1. 捕捉(定义)三个整数,num1、num2、num3;
2. 将num1与num2进行比较,将较小的值存储到num1中;
3. 将num1与num3进行比较,将较小的值存储到num1中,这时候num1中存储的就是三个整数中最小的那个值;
4. 将num2与num3进行比较,将较小的值存储到num2中,这时候num2就是次小值。
代码呈现:
使用常规方法处理
代码如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 
 | #define _CRT_SECURE_NO_WARNINGS #include <stdio.h>
 
 
 int main()
 {
 int num1, num2, num3;
 printf("请输入三个整数:");
 scanf("%d %d %d", &num1, &num2, &num3);
 
 if (num1 > num2)
 {
 int temp = num1;
 num1 = num2;
 num2 = temp;
 }
 if (num1 > num3)
 {
 int temp = num1;
 num1 = num3;
 num3 = temp;
 }
 if (num2 > num3)
 {
 int temp = num2;
 num2 = num3;
 num3 = temp;
 }
 printf("三个整数的排序结果为:%d %d %d", num1, num2, num3);
 
 return 0;
 }
 
 | 
运行结果如下:

使用指针处理
指针的基本概念:
数据都是存储在内存中的,指针就是内存地址
如果我们有了一块内存地址,就可以通过这个地址去访问这块内存中的数据
总结:指针就是内存地址,通过指针可以访问内存中的数据。
指针变量(用于保存内存地址):
指针类型的变量可以保存一个内存地址,它可以用来访问内存中的数据
例如:
画图理解:

指针解引用:
指针解引用就是通过指针变量去访问它指向的内存地址中的数据
| 12
 3
 4
 5
 
 | int a=10; 
 int *p=&a;
 
 int b=*p;
 
 | 
解题思路:
- 定义三个整型指针变量 *pmin(小值指针), *pmax(大值指针), *pmid(中间值指针) 
- 输入三个整数,并将三个指针变量指向这三个整数的内存地址 
- 利用指针变量,比较三个整数,将较小的数存入pmin中,将较大的数存入pmax中,将中间的数存入pmid中 
- 输出三个整数的排序结果 
画图理解:

代码如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | #define _CRT_SECURE_NO_WARNINGS #include <stdio.h>
 
 int main()
 {
 int num1, num2, num3;
 printf("请输入三个整数:");
 scanf("%d %d %d", &num1, &num2, &num3);
 
 int *pmin = &num1;
 int *pmid = &num2;
 int *pmax = &num3;
 
 if (*pmin > *pmid)
 {
 int *temp = pmin;
 pmin = pmid;
 pmid = temp;
 }
 if (*pmin > *pmax)
 {
 int *temp = pmin;
 pmin = pmax;
 pmax = temp;
 }
 if (*pmid > *pmax)
 {
 int *temp = pmid;
 pmid = pmax;
 pmax = temp;
 }
 printf("三个整数的排序结果为:%d %d %d", *pmin, *pmid, *pmax);
 
 return 0;
 }
 
 | 
运行结果如下:

完