Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d",&n); if(n<0||n>999999999){ printf("0"); return 0; } int max=-1; int b=n; int u=0; while(b>0){ int t=b%10; b=b/10; u++; if(t>max){ max=1; } } int mini=10; int v=n; while(v>0){ int k=v%10; v=v/10; if(k<mini){ mini=k; } } int result=max*mini; printf("%d",result); return 0; }
1) 这段代码读取一个整数,计算其各位数字的最大值和最小值,然后输出它们的乘积。但代码存在逻辑错误。

2) 提示1:注意第一个循环中更新max变量的逻辑是否正确,当前实现可能无法正确找到最大数字。
提示2:考虑数字0的特殊情况,当前代码在n=0时不会进入循环。