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;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务