EDN首页   博客首页

2

关于投票
这样交换两个数,妙!

/*

怎样把两个数交换?
这个问题太菜了,脑中或许一下就出现了代码
void swap1(int *a,int *b)
{
 int temp;
 temp=*a;
 *a=*b;
 *b=temp;
}
很好,的确交换了位置,可是我还有个问题
如果没有临时变量,能做到吗?
可能你会绞尽脑汁想到
void swap2(int *a,int *b)
{
 *a=*a+*b;
 *b=*a-*b;
 *a=*a-*b;
}
很不错,当然在两个数不是很大是可以
如果考虑溢出,好像美很有点缺憾
不过我这还有一种方法
void swap3(int *a,int *b)
{
 *a=*a^*b;
 *b=*a^*b;
 *a=*a^*b;
}
"^"这是什么?异或呀!
哦,太妙了,好像没什么问题了
我们应该记住方法三
不要把方法一在脑中固化!!

*/
/******************实验例程********************/
#include
void swap1(int *a,int *b)
{
 int temp;
 temp=*a;
 *a=*b;
 *b=temp;
}
void swap2(int *a,int *b)
{
 *a=*a+*b;
 *b=*a-*b;
 *a=*a-*b;
}
void swap3(int *a,int *b)
{
 *a=*a^*b;
 *b=*a^*b;
 *a=*a^*b;
}
int main()
{
 int a="123",b=321;
 swap1(&a,&b);
 printf("a=%d,b=%d",a,b);
 swap2(&a,&b);
 printf("a=%d,b=%d",a,b);
 swap3(&a,&b);
 printf("a=%d,b=%d",a,b);
 return 0;
}

 

系统分类: 软件开发
用户分类: C编程技巧
标签: C程序 交换两个数 技巧 SWAP
来源: 原创
发表评论 阅读全文(314) | 回复(1)

2

关于投票
写软盘镜像文件

点击下载

开发时如果要使用虚拟机,就不可避免要创建软盘镜像!

这是我用C++写的一个创建软盘镜像的工具(含源程序)

系统分类: 软件开发
用户分类: C编程技巧
标签: C++ 写软盘镜像
来源: 原创
发表评论 阅读全文(418) | 回复(0)

2

关于投票
十六进制查看器

点击下载

这是我以前用C++仿写的一款十六进制查看器!(含源程序)

要用命令行,所以使用批处理文件能很方便地查看到一个文件

(例如软盘镜像文件)的十六进制代码布局。

系统分类: 软件开发
用户分类: C编程技巧
标签: 十六进制查看器 C++
来源: 原创
发表评论 阅读全文(406) | 回复(2)

4

关于投票
C语言中的暂停

很多C语言初学者的调试时,往往没看到结果程序就退出了,据我所知的方法主要有以下几种

方法一:
#include <dos.h>
int main()
{
system("pause");//利用了DOS命令
return 0;
}

方法二:
#include  <stdio.h>
int main()
{
getchar();//须按回车键结束,不是任意键
return 0;
}

方法三:
#include <conio.h>
int main()
{
getch();//按任意键退出
return 0;
}

方法四:
#include <conio.h>
int main()
{
while(!kbhit());//可以用其它的循环

return 0;
}

方法五:增加断点,只适用于调试

==============================

还有吗?请留言告诉我!

系统分类: 软件开发
用户分类: C编程技巧
标签: 暂停 技巧
来源: 原创
发表评论 阅读全文(472) | 回复(0)
总共 , 当前 /