为什么结果输出是“007”,而不是“7”,怎么回事呢?不懂,求解答
因为你循环里每次都输出了digit,也就是x % 10
你要输出7,可以不要在循环里输出,而是把结果加起来,最后一起输出
在循环后面加上 printf("%d", result);
【以下回答由 GPT 生成】
问题的原因在于在输出每一位数字时,没有按照逆序输出的顺序进行输出。解决该问题的方法是将输出的数字存储到一个数组中,然后按照逆序的顺序输出数组中的每一个数字。以下是修改后的代码:
#include<stdio.h>
int main() {
int x;
int digit;
int result = 0;
printf("Please enter an integer: ");
scanf("%d", &x);
int numArray[10]; // 假设整数最多为10位
int count = 0; // 数字的位数
while (x > 0) {
digit = x % 10;
numArray[count] = digit;
count++;
x /= 10;
}
printf("The reverse order of the integer is: ");
for (int i = count - 1; i >= 0; i--) {
printf("%d", numArray[i]);
}
return 0;
}
这样修改后的代码会将输入的整数逆序输出。运行程序,会出现一个提示要求用户输入一个整数。用户输入一个整数后,程序会逆序输出该整数的每一位数字。输出的结果将是正确的逆序整数。
如果您有任何问题,请随时提问。
【相关推荐】