C语言:分解整数 - 计算位数、逆序输出
C语言:分解整数 - 计算位数、逆序输出
任务描述:
编写一个C程序,该程序可以接收一个不超过 5 位的整数作为输入,并执行以下操作:
- 计算该整数的位数。2. 逐位输出该整数的每个数字。3. 逆序输出该整数的每个数字。
**代码示例:**c#include <stdio.h>
int main() { int num; scanf('%d', &num);
int digit_count = 0; int num_copy = num; // 计算位数 while (num_copy != 0) { num_copy /= 10; digit_count++; } // 输出位数 printf('%d
', digit_count);
// 分别输出每一位数字 num_copy = num; while (num_copy != 0) { int digit = num_copy % 10; printf('%d ', digit); num_copy /= 10; } printf('
');
// 按逆序输出每一位数字 num_copy = num; while (num_copy != 0) { int digit = num_copy % 10; printf('%d', digit); num_copy /= 10; } printf('
');
return 0;}
代码解释:
-
读取输入: -
scanf('%d', &num);从标准输入读取一个整数并将其存储在变量num中。 -
计算位数: - 使用一个循环重复将
num_copy除以 10,直到它变为 0。 - 每次循环迭代都会将digit_count加 1,从而计算出整数的位数。 -
逐位输出: - 使用另一个循环,每次迭代都计算
num_copy的个位数 (num_copy % 10) 并将其输出。 - 然后将num_copy除以 10,以便在下一次迭代中处理下一个数字。 -
逆序输出: - 与逐位输出类似,但这次在每次循环迭代中,我们直接输出计算出的个位数,而不进行除法运算。 - 这样就能实现逆序输出整数的每个数字。
示例输入:
12345
示例输出:
51 2 3 4 554321
原文地址: http://www.cveoy.top/t/topic/cPs8 著作权归作者所有。请勿转载和采集!