不用局部变量实现C语言两数交换算法

关于交换算法,我想非常简单,所以,这次不做分析,直接上代码:

#include <stdio.h>
#include <stdlib.h>
//用异或方式实现
void swap(int *a,int *b)
{
    *a^=*b;
    *b^=*a;
    *a^=*b;
}
//用指针加减运算的方式实现
void swap1(int *a,int *b)
{
    *a+=*b;
    *b=*a-*b;
    *a=*a-*b;
}
int main(void)
{
	int a = 3 , b = 2 , c = 1 , d = 4;
	swap(&a,&b);
	printf("%d %d\n",a,b);
	swap1(&c,&d);
	printf("%d %d\n",c,d);
	return 0 ;
}

运行结果:

时间: 2024-10-30 14:27:24

不用局部变量实现C语言两数交换算法的相关文章

c语言-C语言相邻数求最大和的问题求解答

问题描述 C语言相邻数求最大和的问题求解答 #include int** matrix(int row) { int** matr; matr = malloc(row*sizeof(int*)); for(int i = 0; i < row; i++) { matr[i] = malloc(row*sizeof(int)); } return matr; } void get_input(int** arrays, int row) { for(int i = 0; i < row; i+

怎样在wps表格中实现两数除法

  在wps表格中实现两数除法的方法: 首先,双击打开WPS中的Excel表格,新建一张表格,并重命名为"除法.xls", 如下图所示: 双击打开"除法.xls",表格里创建一个数据表格,统计学生分数表格,如下图所示: 接着,给表格几列赋值,学生科目成绩,如下图所示: 为了让表格看起来更清晰明了,给表格添加外边框和内边框,如下图所示: 在表格最后两列中,如"语文/数学"第一行,输入"=", 如下图所示: 然后,用鼠标选中第一行

Flash视频教程:两数比大小

教程|视频教程 课程名称:两数比大小 简要介绍:本例为基础的ActionScript脚本练习,通过一个简单的例子,贯穿三种文本形式(静态.动态.输入)的使用方法,并学习基本的按钮事件和条件语句. 全屏观看:第一集 第一集 点击这里观看第二课内容

Two Sum:两数相加

[ 问题: ] Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please no

c语言-C语言完数问题,新手求指点~谢谢

问题描述 C语言完数问题,新手求指点~谢谢 C语言课后习题,求1000以内的完数,按以下格式输出: 6 its factors are 1,2,3 为什么我改成和答案一样的都输出空., 代码如下:#include int main() { int m,i,s; for(m=2;m<1000;m++)//2-1000个数 { s=0; for(i=1;i<=m;i++) if((m%i)==0)s=s+i; if(s==m) { printf("%d,its factors are&q

数据-怎么修改下面的代码,关于两数求和

问题描述 怎么修改下面的代码,关于两数求和 #include<iostream> #include<string> #include<math.h> using namespace std; struct LinkNode { int data; //记录每个节点的整数(小于10000) LinkNode *next; //记录下一个节点的地址 LinkNode *prev; //记录前一个节点的地址 }; class LinkList { private: LinkN

java-bootstrapValidator 怎么验证两数大小

问题描述 bootstrapValidator 怎么验证两数大小 bootstrapValidator 怎么验证两数大小,有两个价格需要判断第二个小于第一个,且大于0 解决方案 可以用jQuery取值 然后做比较判断.

visual studio-VS2015求两数和没法输入数?

问题描述 VS2015求两数和没法输入数? 输入任意键直接退出 没法输入数? 解决方案 cin>>V1>>V2 应该分开 解决方案二: 你单步调试一下,看有没有到最后,或者在main函数退出前加上"system("pause"):",程序就不会退出了. 还有你两个数是怎么输入的,中间是空格么?还是输入一个,回车一下,再输入下一个?

c语言亲密数问题~~~~~~~~~

问题描述 c语言亲密数问题~~~~~~~~~ #include int main() { int a,b,s1=0,s2=0; for(a=1;a<=3000;a++) for(b=a+1;b<=3000;b++) { for(int i=1;i<a;i++) if(a%i==0)s1+=i; for(int j=1;j<b;j++) if(a%j==0)s2+=j; if(s1==b&&s2==a) { printf("%d...%d ",a,