从反向输出一个四位数由难到易引申到反向输出一个n位数
Posted LZYGO1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从反向输出一个四位数由难到易引申到反向输出一个n位数相关的知识,希望对你有一定的参考价值。
题目如下:
描述
将一个四位数,反向输出。
输入描述:
一行,输入一个整数n(1000 <= n <= 9999)。
输出描述:
针对每组输入,反向输出对应四位数。
示例1
输入:
1234
输出:
4321
解一:
思路:先取千位数字用例如1234/1000将1取出,在1234%1000取余重复上述操作;
代码:
#include <stdio.h>
int main()
int a,b,c,d,e,f;
printf("请输入一个四位数\\n");
scanf("%d",&a);
b=a/1000;
c=a%1000/100;
d=a%1000%100/10;
e=a%1000%100%10;
f=b+c*10+d*100+e*1000;
printf("这个四位数的逆序为%d",f);
return 0;
解二:
这个方法是从《明解c语言》上学到的,具体思路是:
举例1234
1.1234%10将余数4打印出来
2.1234/10将123取出
3.123%10将3打印出来
4.以此类推
这个方法可以用一个for循环解决
int main()
int n = 0;
scanf("%d", &n);
int i = 0;
for (i = 0; i <4; i++)//几位数就循环几次
printf("%d", n % 10);
n /= 10;
return 0;
从这里我想到了能否根据这个思路逆序输出一个n位数
此时只需要判断输入这个数是几位数
用while来判断
int main()
int a, x = 11;
int i = 1;
int m =0 ;
scanf_s("%d", &a);
while (x > 10)
m++;
x = a / i;
i *= 10;
printf("%d", m);
return 0;
用for循环来判断
#include<stdio.h>
int main()
int a, x;
int i = 0;
int m = 1;
scanf("%d", &a);
for (i = 1, m = 1;; i *= 10)
x = a / i;
if (x > 10)
m++;
else
break;
printf("%d", m);
return 0;
判断出来几位数后,接下来上完整代码:
#include<stdio.h>
int main()
int n = 0,x=11,m=0,i=1;
scanf_s("%d", &n);
while (x > 10)//判断几位数
m++;
x = n / i;
i *= 10;
int k = 0;//这里也可以换成k=1,下面的条件就为k<=m
for (k = 0; k <m; k++)//几位数就循环几次
printf("%d", n % 10);
n /= 10;
return 0;
运行结果为:
以上是关于从反向输出一个四位数由难到易引申到反向输出一个n位数的主要内容,如果未能解决你的问题,请参考以下文章