C语言逆序输出正整数的N种方法

逆序输出三位数
固定的三位数,我们不需要循环。

#include <stdio.h>
//逆序输出一个三位数,比如123,输出321
int main() {
	int a=0;
	int b,c,d;
	printf("请输入一个三位数:\n");
	scanf("%d",&a);
	printf("%d\n",(a%10)*100+((a%100)/10)*10+a/100) ;
	return 0;
}

逆序输出任意正整数
分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法

a = num % 10;

就是输出数字的最后一位
然后除10剔除数字最后一位,这样数字倒数第二位就会输出。以此类推,就能逆序输出数字。

方法一

#include <stdio.h>
int main()
{
	int n ;
	scanf("%d",&n);
	while(n>0)
	{
		printf("%d",n%10);
		n = n/10;
	}
	printf("\n");
	return 0;
}

方法二

#include <stdio.h>
void oppsite(int n);//逆序输出函数
int main() {
	int m;
	scanf("%d",&m);
	oppsite(m);
	return 0;
}
void oppsite(int n) { //逆序输出函数
	if(n==0) return;
	else
		printf("%d",n%10);
	oppsite(n/10);    //递归调用
	return;
}

方法三

#include<stdio.h>
int main() {
	int a;
	while(scanf("%d",&a)!= EOF) {
		while(a>0) {
			printf("%d",a%10);
			a=a/10;
		}
		printf("\n");
	}
	return 0;
}

方法四

#include<stdio.h>
#include<string.h>
int main() {
	int i,j,t,n;
	char a[10];
	gets(a);
	n=strlen(a);
	for(i=0; i<=n/2; i++) {
		t=a[i];
		a[i]=a[n-1-i];
		a[n-1-i]=t;
	}
	for(j=0; j<n; j++)
		printf("%c",a[j]);
	printf("\n");
	return 0;
}

方法五

#include <stdio.h>
void print(int n);//声明
int main() {
	int a;
	scanf("%d",&a);
	print(a);
	return 0;
}
void print(int n) {
	while(n!=0) {
		printf("%d",n%10);
		n=n/10;
	}
}

方法六

#include <stdio.h>
void main( ) {
	int x,d;
	scanf("%d",&x);
	do {
		d=x%10;
		printf("%d",d);
		x=x/10;
	} while(x!=0);
}

发布日期:

所属分类: 编程, 编程语言 标签: