C和指针之函数之归以字符形式按顺序打印数字的每位数字(递归和非递归)
2017-11-06 23:13
281 查看
1、问题
以字符形式按顺序打印数字的每位数字(递归和非递)
2、代码实现
#include <stdio.h> #include <math.h> //以字符形式按顺序打印数字的每位数字,比如4267,打印4267 //递归实现 void printf_char(unsigned int value) { unsigned int tmp; tmp = value / 10; if (tmp != 0) printf_char(tmp); putchar(value % 10 + '0'); } //非递归实现 void printf_char1(unsigned int value) { int len = 0; int value1 = value; //计算长度 while (value1 > 0) { ++len; value1 /= 10; } double a = pow(10, 2); printf("len is %d\n", len); //4267 4267 / 1000, 4267 / 100 % 10, 4367 / 10 % 10, for (int i = 1; i <= len; ++i) { double dou = pow(10, len - i); i == 1 ? putchar(value / (int)dou + '0') : putchar(value / (int)dou % 10 + '0'); } } int main() { int a = 4267; printf_char(a); puts(""); printf_char1(a); puts(""); return 0; }
3、运行结果
1111deMacBook-Pro:dabian a1111$ gcc -g printf_char.c -o printf_char 1111deMacBook-Pro:dabian a1111$ ./printf_char 4267 len is 4 4267
相关文章推荐
- 1,2,3…n*n 的数字按照顺时针螺旋的形式打印成矩阵(递归)
- 笔试题-输入一个字符数组将这些字符串按顺序合并输出-指针数组-数组指针-函数指针-指针函数
- java打印输出如下形式数列递归与非递归
- 合法IP&窗口最大值数组&打印素数&递归逆序一个栈&栈排序另一个栈&MyString&寻找数组中出现的重复字符&数组中的重复数字&逆序打印链表&空格替换成%20
- C和指针之函数之实现阶乘和斐波那契数(递归和非递归)
- C和指针之函数递归实现把amount表示的值转换为单词形式written_amount(unsigned int amount,char *buffer)
- 将数字按照其16进制的字符形式打印出来, 方便观察数据位的变化
- 实验 9 指针1 输入一行字符,要求用自定义的函数void f(char *line)统计和输出字符串中数字字符、英文字符和其他字符的个数
- Python 使用递归打印输出数字 (逆序和顺序)
- 面试题目-用递归通过单字符输出打印多位的数字
- 1,2,3…n*n 的数字按照顺时针螺旋的形式打印成矩阵(递归)
- 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 递归实现将参数字符串中的字符反向排列,要求不能使用C函数库中的字符串操作函数
- 将数字以二进制的形式打印出来
- 习题 7.8 写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出“1 9 9 0”。
- 5.单行函数,多行函数,字符函数,数字函数,日期函数,数据类型转换,数字和字符串转换,通用函数(case和decode)
- 实现一个函数来调整该数组中数字的顺序实例
- 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
- LintCode 用递归打印数字
- 递归形式的itoa及reverse函数的实现