我尝试将其转换为无符号并将其声明为无符号.它没用.
#include <stdio.h>
int main(void)
{
int number, modulo;
int result = 0;
printf("Please provide an integer: ");
scanf("%i", &number);
while (number != 0) {
modulo = number % 10;
result += modulo;
number = number / 10;
}
printf("%i", result);
printf("The sum of the digits of provided number is %i\n", result);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设这x是一个int变量,除了2的补码平台外,所有值的printf("%d", x<0 ? -x : x)打印都x没有INT_MIN.
R ..以下建议:
printf("%u", (unsigned) (x<0 ? (-1 - x) + 1 : x);
Run Code Online (Sandbox Code Playgroud)
...因为INT_MIN任何合理的平台都可以处理.