Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d",&n); int a[1000]; int length=1; int temp=n; while(temp/10!=0){ length++; temp=temp/10; } temp=n; for(int i=0;i<length;i++){ a[i]=temp%10; temp=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) 这段代码读取一个整数,计算其各个数位上的数字,找出最大和最小的数字,然后输出它们的差值。

2) 注意:当数字只有一位时,最大和最小值初始化为 a[1] 会导致数组越界。  
   提示:考虑使用更安全的方法初始化 max 和 min,例如初始化为第一个有效的数组元素。