在线编译器 C

#include <stdio.h> int main() { int N,min=9,max=0,result; scanf("%d",&N); while(N/10>=9){ N=N/10; if(N>=max){ max=N; }; }; while(N/10!=0){ N=N%10; if(N<=min){ min=N; }; } result=max*min; printf("%d",result); return 0; }
1) 这段代码试图计算一个整数中最大和最小数字的乘积,但存在逻辑错误。它先通过不断除以10来寻找最高位数字作为最大值,然后通过取模运算来寻找最低位数字作为最小值。

2) 提示1:注意第二个while循环的条件和N值的变化,取模运算会改变N的值吗?
   提示2:考虑如何正确提取一个数字的每一位数字,当前的循环逻辑可能无法遍历所有数字。