运用指针,调用函数来是3个数从大到小输出(通过异或来交换大小)
来源:互联网 发布:中国实力知乎 编辑:程序博客网 时间:2024/06/06 01:20
今天通过对指针和函数的学习,运用异或运算来实现对3个数从大到小排序,并尝试运用#define进行注释,希望对初学者有所帮助。程序如下:
#include<stdio.h>
//#define debug
#ifdef debug
int main(int argc, const char *argv[])
{
int *p;
int *i;
int *j;
int a;
int b;
int c;
int t;
p = &a;
i = &b;
j = &c;
scanf("%d%d%d",&a,&b,&c);
if ( *p < *i){
t = *p;
*p = *i;
*i = t;
}
if ( *p < *j){
t = *p;
*p = *j;
*j = t;
}
if ( *i < *j){
t = *i;
*i = *j;
*j = t;
}
printf("%3d%3d%3d",a,b,c);
return 0;
}
#endif
#include<stdio.h>
int main(int argc, const char *argv[])
{
int a;
int b;
int c;
int *p;
int *i;
int *j;
void swap(int *p1, int *p2);
void exchange(int *p3,int *i2,int *j2);
scanf("%d%d%d",&a,&b,&c);
p = &a;
i = &b;
j = &c;
exchange(p,i,j);
printf("%3d%3d%3d\n",a,b,c);
}
void exchange(int *p3,int *i2,int *j2 ){
void swap(int *p1,int *p2);
if(*p3 < *i2) swap(p3,i2);
if(*p3 < *j2) swap(p3,j2);
if(*i2 < *j2) swap(i2,j2);
}
void swap(int *p1,int *p2){
*p1^= *p2;
*p2^= *p1;
*p1^= *p2;
}
- 运用指针,调用函数来是3个数从大到小输出(通过异或来交换大小)
- 从大到小输出3个数,指针+函数调用
- 指针-输入3个数,调用函数,从大到小排列输出
- 通过异或来实现2个数的交换(不需要中间变量)
- Java数值交换(通过异或^来完成)
- 把3个数从大到小输出。。。。(如果是N个数,可以用函数???)
- 通过指针变量来交换值
- 用异或来交换两个变量是错误的
- 用异或来交换变量是错误的
- 用异或来交换两个变量是错误的
- 用异或来交换两个变量是错误的
- 通过文件指针来获取文件的大小(fseek与ftell函数 )
- 用交换函数来理解指针
- 异或来交换数原理
- 通过获取HDFS目录/文件夹大小来控制reduce个数
- 【c++程序】通过指针来交换两个数的值
- C++中通过指针来交换两个数
- 如何通过数组来保存函数指针
- 44 c++ m面向对象版表达式计算器 设计缺陷
- 策略模式
- OPENCV回调函数
- CSS自适应布局(左右固定 中间自适应或者右侧固定 左侧自适应)
- 23读取联系人移植到项目中
- 运用指针,调用函数来是3个数从大到小输出(通过异或来交换大小)
- UIView获取屏幕Screen中的坐标位置
- GUI 匿名类
- pat字符串-02
- 深度学习BP算法的推导(附加RNN,LSTM的推导说明)
- 比较perl+python
- LeetCode Min Stack
- php小知识点
- PHP引用(&)使用详解