DOTCPP题目 2782: 整数大小比较

一、题目

题目描述

输入两个整数,比较它们的大小。

输入格式

一行,包含两个整数x和y,中间用单个空格隔开。

0 <= x < 2^32, -2^31 <= y < 2^31。

输出格式

一个字符。

若x > y,输出 > ;

若x = y,输出 = ;

若x < y,输出 < 。

样例输入

复制

1000 100

样例输出

复制

>

二、分析


0 <= x < 2^32, -2^31 <= y < 2^31,x是无符号数,而当y<0时是有符号数,考虑这种特殊情况,有符号数会转化成比无符号数还大的数,导致结果错误。例如:x=4294967242,y=-1,程序会输出<。

三、代码

cpp 复制代码
#include<stdio.h>

int main()
{
	/*C语言
	当有符号数n(-2^31~2^31-1)和无符号数据m(0~2^32-1)进行比较时,
	会进行将有符号的数据转化为无符号的数据,
	而且这种转换会使有符号的被转换成大于无符号的一个最大的值
	所以,当m是无符号数时,n<0,n作为有符号数,n会被转换,
	所以要输出>号 
	*/	 
	int n;
	unsigned int m; 
	scanf("%d %d",&m,&n);
	if(m>n || n<0){ //n<0时,作为有符号数 
		printf(">");
	} else if(m==n){
		printf("=");
	}else{
		printf("<");
	}
	return 0;	
 } 
相关推荐
野犬寒鸦36 分钟前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
霖霖总总39 分钟前
[小技巧66]当自增主键耗尽:MySQL 主键溢出问题深度解析与雪花算法替代方案
mysql·算法
rainbow68891 小时前
深入解析C++STL:map与set底层奥秘
java·数据结构·算法
wangjialelele1 小时前
平衡二叉搜索树:AVL树和红黑树
java·c语言·开发语言·数据结构·c++·算法·深度优先
驱动探索者2 小时前
linux mailbox 学习
linux·学习·算法
ringking1232 小时前
autoware-1:安装环境cuda/cudnn/tensorRT库函数的判断
人工智能·算法·机器学习
大闲在人2 小时前
8. 供应链与制造过程术语:产能
算法·制造·供应链管理·智能制造·工业工程
一只小小的芙厨2 小时前
寒假集训笔记·以点为对象的树形DP
c++·算法
历程里程碑2 小时前
普通数组----合并区间
java·数据结构·python·算法·leetcode·职场和发展·tornado
执风挽^3 小时前
Python基础编程题2
开发语言·python·算法·visual studio code