我是C/C++初学者,刚入门学的知识很少。学到教学课堂有这么一题,就是用初学的知识来比较两个整数a,b的大小。提示有用除法和bool。0*任何数为0,1*任何数为1. 考虑到如果a大于b的话int a除以int b结果为1反之为0.但是我初学想了好久还是不明白不用判断怎么去构筑这个程序。“输入两个整数,并显示大的数和小的数的值”。求求各位大佬指点下萌新!感激不尽(在C/C++控制台上的)。教学的老师说让自己思考,不可能说答案的。我实在不明白怎么做,十分难受,求解
2条回答 默认 最新
threenewbee 2020-09-17 22:33关注#include <stdio.h> int main() { int a; int b; scanf("%d%d", &a, &b); char * ch = "><="; int result = (((unsigned)(a - b)) / (1 << 31)) + (int)(a == b) * 2; printf("%c\n", ch[result]); return 0; }或者
int a; int b; scanf("%d%d", &a, &b); char * ch = "><="; int result = ((a / b) == 0) + (int)(a == b) * 2; printf("%c\n", ch[result]);下面是不用指针不用==的方法(scanf的指针另当别论,你也可以换成cin)
int a; int b; scanf("%d%d", &a, &b); char ch[] = "=><"; int result = (((unsigned)(a - b)) / (1 << 31)) + (((unsigned)(a - b - 0)) / (1 << 31)) + (((unsigned)(0 - a + b)) / (1 << 31)) ; printf("%c\n", ch[result]);问题解决的话,请点下采纳。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报