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;
}
查看28道真题和解析