本文主要是介绍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,程序会输出<。
三、代码
#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; }
这篇关于DOTCPP题目 2782: 整数大小比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!