c语言-C语言只使用2个变量实现交换两个int数字,方法越多越好,谢谢

问题描述

C语言只使用2个变量实现交换两个int数字,方法越多越好,谢谢

C语言只使用2个变量实现交换两个int数字,方法越多越好,谢谢

解决方案

int x = 1;
int y = 2;
x = x ^ y;
y = x ^y;
x = x ^ y;

解决方案二:

int x=1;
int y=2;
x=x+y;
y=x-y;
x=x-y;

解决方案三:

我以为b=a+b-(a=b) 应该是结果为b = 原来的b 没有改变b。
但是我测试发现vs2010是这样的 没有改变的b, 但是gcc 就是a b互换啦。我觉得如下应该没有歧义吧:
b = (a+b)-(a=b);

解决方案四:

x=x+y;
y=x-y;
x=x-y;

解决方案五:

int a,b;
b=a+b-(a=b);

解决方案六:

int swap (x,y)
{
x=x+y;
y=x-y;
x=x-y;
}
拿去,不用谢

解决方案七:

除了位操作外,其它几种好像都没有考虑溢出

解决方案八:

之前写的匆忙,我又重新写了下,这个我测试过了,肯定没问题,关于溢出,我只想说你是要写多大的数啊,32位系统下只要数不超过4294967295就不会有溢出问题

解决方案九:

int x=1
int y=x+1

时间: 2025-01-26 15:10:47

c语言-C语言只使用2个变量实现交换两个int数字,方法越多越好,谢谢的相关文章

android2.2在选择语言时,只显示English和简体中文

问题描述 android2.2在选择语言时,只显示English和简体中文,其他的语言选项全部删除,如何做,小弟求教各位大哥....帮忙 问题补充:是得,不过我是刚毕业,你说的这个我找到了,而且修改了,只剩下简体中文美式英语,请问修改之后如何编译,如何查看效果,在模拟器上或者真机上都可以,如何做?地球小野花 写道 解决方案 编译可以参考http://android-sz.iteye.com/blog/1265613 android 4.0编译全程.里面包含系统语言设置的东西.解决方案二:问个问题

c语言-C语言二维数组下标越界--却能给越界的下标赋值 和输出

问题描述 C语言二维数组下标越界--却能给越界的下标赋值 和输出 编译器:dev-c++ int iArray[3][4]; iArray[3][4]=1000; printf("%d",iArray[3][4]); 改变 iArray[3][4]的值为1000 输出的结果仍然为1000 请问这个是什么原因呢? 我是直接给越界的下标进行了赋值 以前以为只要是下标越界了 输出的都是无意义的数字 其实那是因为没有给越界的下标赋值 对吗 越界的下标为什么还能正常使用呀 解决方案 使用越界的数

c语言-C语言实现文件合并的问题

问题描述 C语言实现文件合并的问题 之前已经编写了一个程序,可以实现.txt的文件内容追加写,可是对两个视频操作的时候就行不通了.但是又不知道问题出现在哪里,视频能合并,文件大小是两个文件的和,可是新和成的文件内容只显示一个文件的内容.这个要怎么解决. 解决方案 视频文件不是简单两个文件叠加.视频文件包含复杂的结构,文件头部分指定了这个视频的格式,有多少帧,存储的偏移地址是什么你简单合并两个文件,播放器只知道根据第一个文件的文件头找数据,附加在后面的第二个文件是读不到的.你需要重新编码得到一个完

c语言-C语言的文件问题????????

问题描述 C语言的文件问题???????? 我如果想往C的文件里写入数据,我要事先手动建立一个.txt文件吗?还是有其他方法自动创建? 解决方案 O(NlgK)问题优先队列实现文件C语言C语言中头文件相互包含问题c语言中,文件路径读取问题 解决方案二: 不用手动建立文件的,c语言里有很多文件操作函数,可以自动建立文件,并可以写入你想写入的数据 解决方案三: 我也想提这样的问题.不过既然是C的文件,我觉得应该是创建.C文件吧,.TXT是文本格式的,估计是不行的. 解决方案四: c语言中可以通过代码

交换两个文本内容的C语言代码

这篇文章主要介绍了交换两个文本内容的C语言代码,有需要的朋友可以参考一下 文本存储的位置:   jack.txt位于:    e:jack.txt   retchie.txt位于:     e:retchie.txt   内容:   jack.txt   ->  "Hello! I am Jack."   retchie.txt   ->   "Hello! I am Retchie."   相关代码:     代码如下: #include <st

win7如何更改语言 电脑语言改成英文的方法

今年evad3rs团队发布的iOS 7完美越狱工具有些特殊,中国版iOS7完美越狱工具中,捆绑有太极助手插件,此插件类似流氓插件,容易导致iOS越狱设备出现白苹果现象(国外版无此插件).目前比较好的解决办法是:在使用电脑中越狱的时候,将电脑语言改为英文,可绕过该插件.但很多电脑小白用户还不知道如何更改电脑语言,因此本文将为大家详细介绍下电脑语言更改教程. 如何更改电脑语言 电脑语言改为英文方法 以下笔者以Windows 7系统截图演示,教大家如何更改电脑语言.其他XP或者Win8系统设置方法与此

c语言-C语言简单程序调试问题

问题描述 C语言简单程序调试问题 这是源码: #include #include int main() { double x,y,z,i; for(x = 1;x<100000;x++) { y = sqrt(x+100); z = sqrt(x+268); if((y*y == x+100)&&(z*z == x+268)) { printf("%lfn",x); } } return 0; } 不知道问题出在哪里?麻烦解答一下. 另,为什么知道设定的数值范围是

c语言-C语言递归的数字转换问题,习题求解

问题描述 C语言递归的数字转换问题,习题求解 C语言使用递归算法将一个正整数字符串为对应的数值.不得使用循环 解决方案 c语言没有默认参数吧,改为: #include <stdio.h> int fun(char *p,int m) { int n=1; if(*p) { n=m*10+*p-'0'; return fun(p+1,n); } return m; } void main() { char str[]="1234"; printf("%d "

求C语言高手解惑,一个关于const变量定义数组大小问题

问题描述 求C语言高手解惑,一个关于const变量定义数组大小问题 我在函数的外部定义了一个BlockSize,然后又定义了一个结构(两者都是在函数外部).编译的时候,出现一个error.提示说:variably modified 'array' at file scope const int BlockSize = 20;//define BlockSize 20typedef struct _node { int array[BlockSize]; struct _node* next;}N