解题思路:C会自动进行有符号对无符号的转化,为避免比较大小时负数转化为无符号导致比较结果出错,不妨先对有符号进行正负判断。

注意事项:尤其注意题干要求的无符号整数和有符号整数范围,此处有一个易错点,如果直接简单认为xy都为Int型数据,在无符号数据超过2的31次方-1时,代码将会出错,所以简单设int x,int y这种做法是错误的,这样会导致部分数据比较大小时结果不对,比如x=4294967242,y=-1,程序会输出<。


参考代码:

#include <stdio.h>


unsigned int x;

int y;


int main() {


scanf("%u %d", &x, &y);


if (y < 0 || x > y)

printf(">") ;

else if (x < y)

printf("<") ;

else if (x == y)

printf("=");

return 0;

}


点赞(0)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论