解题思路: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分
4 人评分
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:507 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:702 |
1908题解浏览:640 |
a+b浏览:433 |
前10名 (C语言代码)浏览:727 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:667 |
C二级辅导-计负均正 (C语言代码)浏览:643 |
C语言训练-斐波纳契数列 (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:467 |
DNA (Java代码)浏览:936 |