解题思路: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分
5 人评分