用c语言的指针来对三个数进行排列
2015-09-18 13:12
375 查看
#include
<stdio.h>
void change(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
void exchange(int *q1,int *q2,int *q3)
{
if(*q1<*q2) change(q1,q2);
if(*q1<*q3) change(q1,q3);
if(*q2<*q3) change(q2,q3);
}
void main()
{
int a,b,c,*p1,*p2,*p3;
printf("please enterthe numbers: ");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
exchange(p1,p2,p3);
printf("\nmax=%d,mid=%d,min=%d\n",a,b,c);
system("pause");
}
使用指针对三个数进行排列。将指针变量p1指向变量a,p2指向b,p3指向c。然后调用函数,进行排列。如果q1所指向的变量的值小于q2指向的变量的值,则这两个变量的值交换,即假设q1指向a,q2指向变量b,*q1和*q2交换就是a的值和b的值交换。三组数两两交换,最后,a中是最大的数,b中是中间数,c中是最小的数。
最后添加暂停函数,否则程序运行就退出了。
<stdio.h>
void change(int *x,int *y)
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
void exchange(int *q1,int *q2,int *q3)
{
if(*q1<*q2) change(q1,q2);
if(*q1<*q3) change(q1,q3);
if(*q2<*q3) change(q2,q3);
}
void main()
{
int a,b,c,*p1,*p2,*p3;
printf("please enterthe numbers: ");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
exchange(p1,p2,p3);
printf("\nmax=%d,mid=%d,min=%d\n",a,b,c);
system("pause");
}
使用指针对三个数进行排列。将指针变量p1指向变量a,p2指向b,p3指向c。然后调用函数,进行排列。如果q1所指向的变量的值小于q2指向的变量的值,则这两个变量的值交换,即假设q1指向a,q2指向变量b,*q1和*q2交换就是a的值和b的值交换。三组数两两交换,最后,a中是最大的数,b中是中间数,c中是最小的数。
最后添加暂停函数,否则程序运行就退出了。
相关文章推荐
- C语言结构体大小计算
- C++类型转换
- 第3周项目2 建设“顺序表”算法库
- C++中两个头文件相互引用
- C++_wcout / C_wprintf (wcout输出中文)
- C++ typename 总结
- Item 30:理解inline函数的里里外外 Effective C++笔记
- 【C语言】关于宏定义中#和##符号的使用和宏定义展开问题
- C语言的几个常见冷知识
- 彻底搞定C语言指针(转)
- 学生信息管理系统(C语言版)
- C语言程序设计经典书籍
- c++ 代理类与句柄类实现思想
- C语言之break和continue
- makefile---多个源文件,多个可执行文件(C/C++)
- C++如何调用C#编写的DLL
- makefile---单多个源文件,单个可执行文件(C/C++)
- C++封装、继承、多态
- C/C++__typedef用法
- c语言 conio.h头文件介绍