C题(八)一个正整数的逆序打印(用循环结构实现)
场景:一个正整数的逆序打印
输入示例:1234
输出示例:4321
法一:
第一步:通过取模运算(即%),把正整数的最末尾一位拿出来打印,如:1234中的4;
第二步:再把正整数除以10,得到商为123,再进行第一步操作,循环往复。
直到把4、3、2、1依次打印出来。👉代码示例:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{int n = 0;scanf("%d",&n);while(n > 0){printf("%d", n % 10);n /= 10;}return 0;
}
tip👉以上代码的缺点:打印的4321为每个数字单独打印,不为一个整体,不可再次使用
————————————即4321不能作为数据用在下一步操作
法二:
数学解析:4321 == 4 * 10 * 10 * 10 + 3 * 10 * 10 + 2 * 10 + 1
👉代码示例:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{int sum = 0;int n = 0;scanf("%d",&n);do{sum *= 10;sum += (n % 10);n /= 10;} while (n > 0);printf("%d", sum);return 0;
}
tip:优点:可以实现4321作为一个整体数据,再次用于之后的操作。
后记:
当然,还有许多其它的方法,比如,用数组来存储与遍历也是不错的方法,这里就暂时先忽略了。