C语言——反向与正向打印一个数的每一位
在C语言中,我们会学到如何反向和正向打印一个数的每一位,而反向打印可以通过循环和递归两种方式来实现,正向打印可用数组方式实现。
01.反向打印一个数的每一位
#include <stdio.h> void printReverse(int n) { int original = n; while (n > 0) { printf("%d ", n % 10);//调取数的最后一位 n /= 10;//进行去掉最后一位的操作 } printf("\n"); } int main() { int number; printf("Enter a number: "); scanf("%d", &number); printf("该数字反向打印每一位数为: "); printReverse(number); return 0; }
方法二和方法一类似,main函数基本不变,都在调用函数中执行反向打印的操作。
#include <stdio.h> void printReverse(int n) { if (n == 0) return; printf("%d ", n % 10); printReverse(n / 10);//相当于方法一循环中的n /= 10 } int main() { int number; printf("Enter a number: "); scanf("%d", &number); printf("该数字反向打印每一位数为: "); printReverse(number); printf("\n"); return 0; }
而正向打印也一样,可以用简单循环或者递归实现(这个就不多说了),这里我来写一下我的方法。
02.正向打印一个数的每一位
#include<stdio.h> int main() { int n, i, count = 0, a[100]; scanf("%d", &n); for (i = 0; ; i++) { while (n / 10 != 0) { a[i] = n % 10;//将除最高位以外的所有位数放进数组a之中 i++; count++; n = n / 10; } if (n / 10 == 0) { printf("%d", n);//打印最高位 break; } } for (i = count - 1; i >= 0; i--) { printf(", %d", a[i]);//将数组按照a[9]、a[8]、a[7]的顺序打印出来 } return 0; }