#include <stdio.h>
int main() {
int num;
int temp;
int digit;
int max_digit = -1;
int min_digit = 10;
int diff;
int input_status;
int c;
printf("Please enter an integer: ");
input_status = scanf("%d", &num);
if (input_status != 1) {
// 清空输入缓冲区残留
while ((c = getchar()) != '\n' && c != EOF);
printf("Error: Invalid input! Please enter a valid integer (e.g., 123, -456, 0).\n");
return 1;
}
// 手动判断空白字符(替代isspace():空格' '、制表符'\t'等)
while ((c = getchar()) != '\n' && c != EOF) {
// 非空白字符则视为无效输入
if (c != ' ' && c != '\t' && c != '\v' && c != '\f' && c != '\r') {
printf("Error: Invalid input! Only pure integer is allowed (no extra characters).\n");
return 1;
}
}
if (num == 0) {
max_digit = 0;
min_digit = 0;
} else {
temp = (num < 0) ? -num : num;
while (temp > 0) {
digit = temp % 10;
if (digit > max_digit) {
max_digit = digit;
}
if (digit < min_digit) {
min_digit = digit;
}
temp = temp / 10;
}
}
diff = max_digit - min_digit;
printf("The difference between the maximum and minimum digits: %d\n", diff);
printf("Maximum digit: %d, Minimum digit: %d\n", max_digit, min_digit);
return 0;
}