当前位置: 首页 > news >正文

CExercise_04_1运算符_4交换两个不同整数的值

题目:

给定两个不同的整数 a 和 b,请交换它们两个的值。(不要定义函数来实现,直接在main函数里实现)


关键点

异或: 相同为0,不同为1
在这里插入图片描述

`异或运算(XOR) 的以下特性:

a ^ a = 0(任何数和自己异或结果为 0)

a ^ 0 = a(任何数和 0 异或结果不变)

异或运算满足交换律和结合律(即 a ^ b ^ a = b)


分析:

注意细节 :在 printf 语句中:缺少逗号 分隔格式字符串和变量参数

在这里插入图片描述


代码

//方法一: 利用位运算,完成两个元素之间的交换
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
	int a = 5, b = 8;

	//利用异或运算 b=a^b^a
	a = a ^ b;    // a=13,b=8
	b = a ^ b;    // a=13,b=5
	a = a ^ b;    // a=8,b=5

	//int tmp = a; //利用临时变量的思想,交换两个元素
	//a = b;
	//b = tmp;

	printf("a = %d,b = %d\n", a, b);
	return 0;
}

在这里插入图片描述

//方法二
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
	int a = 100, b = 200;
	int tmp = a; //利用临时变量的思想,交换两个元素
	a = b;
	b = tmp;

	printf("a = %d,b = %d\n", a, b);
	return 0;
}
	

在这里插入图片描述


解决方案总结:

1 ) & 运算符不能放在字符串外面,应该用 %d 占位符来格式化输出。
2) 语法错误 在 printf 语句中:缺少逗号 分隔格式字符串和变量参数。

在这里插入图片描述

http://www.dtcms.com/a/111689.html

相关文章:

  • 算法刷题记录——LeetCode篇(3.2) [第211~212题](持续更新)
  • CExercise_05_1函数_1.1素数(要对键盘录入的数据做参数校验)
  • 游戏引擎学习第204天
  • 使用 .NET 9 和 Azure 构建云原生应用程序:有什么新功能?
  • ArkTs的UI装饰器(自定义组件生命周期、页面组件生命周期、所有UI装饰器使用及示例)
  • C++ | C++11知识点
  • react redux的学习,单个reducer
  • Spring-IOC部分
  • python __init__文件的作用
  • (51单片机)矩阵按键密码锁表白(C语言代码编撰)(矩阵按键教程)(LCD1602浅教程)
  • Python数据结构之有序列表
  • docker使用汇总
  • 【YOLO系列(V5-V12)通用数据集-工程用车检测数据集】
  • MINIQMT学习课程Day8
  • 解锁大数据可视化设计,让数据会 “说话”
  • Docker安装、配置JDK17
  • 程序化广告行业(59/89):广告验证与反作弊实战技巧
  • HTML jQuery 项目 PDF 批注插件库在线版 API 示例教程
  • PostgreSQL的扩展(extensions)-常用的扩展-pg_dirtyread
  • 55.基于springboot+vue的汽车租赁管理系统
  • Flink CDC Pipeline mysql to doris
  • 关于JVM和OS中的指令重排以及JIT优化
  • 小刚说C语言刷题——第14讲 逻辑运算符
  • Jetpack Compose `ACTION_HOVER_EXIT` 事件异常解决方案
  • 纯个人整理,蓝桥杯使用的算法模板day2(0-1背包问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个
  • MySQL-SQL-DDL语句、表结构创建语句语法、表约束、表数据类型
  • Dive into Deep Learning - 2.4. Calculus (微积分)
  • Netty——连接超时 与 断开重连
  • Linux命令-grep
  • 人工智能爬虫导致维基共享资源带宽需求激增 50%