Онлайн компилятор C

#include<stdio.h> int main(){ int num,temp; int max_digit=0,min_digit=9; scanf("%d",&num); temp = (num < 0) ? -num : num; temp=num; while(temp!=0){ int digit=temp%10; if(digit>max_digit){ max_digit=digit; } if(digit<min_digit){ min_digit=digit; } temp/=10; } int a=max_digit-min_digit; printf("%d\n",a); return 0; }
1) 这段代码的目的是读取一个整数,计算其绝对值中各个数字位上的最大值与最小值之差,并输出结果。

2) 提示:
- 注意第8行 `temp=num;` 可能覆盖了第7行对负数的处理结果,导致负数的情况没有被正确处理。
- 检查循环中处理数字的逻辑,确保当输入为0时,代码能正确输出结果。