在线编译器 C

#include <stdio.h> int main() { int n; scanf("%d",&n); int a[1000]; int length; int temp=n; while(temp/10!=0){ length++; temp=temp/10; } temp=n; for(int i=0;i<length;i++){ a[i]=temp%10; } int max=a[1],min=a[1]; for(int i=0;i<length;i++){ if(a[i]>max){ max=a[i]; } if(a[i]<min){ min=a[i]; } } int result=max-min; printf("%d",result); return 0; }
1) 这段代码试图读取一个整数 n,将其各位数字分离存储到数组中,然后找出这些数字中的最大值和最小值,并计算它们的差值输出。

2) 提示1:注意 `length` 变量没有初始化,这会导致循环次数不确定。  
   提示2:在分离数字的循环中,`temp` 的值没有更新,会导致数组元素重复赋值。