C语言实现进制转换——超图面试题
2014-11-05 17:13
267 查看
递归:递归的原理,就是自己调用自己本身。存在一个顺序的问题,如果在递归前的是顺序执行,递归后的是逆序执行,如下:
递归
下面实现进制转换就是利用的这个原理。
代码如下:
递归图解
void gogogo() { //递归之前 gogogo(); //递归之后 }
递归
下面实现进制转换就是利用的这个原理。
代码如下:
#include<stdio.h> #include<stdlib.h> void toletter(int num) { switch (num) { case 10: printf("%c", 'a'); break; case 11: printf("%c", 'b'); break; case 12: printf("%c", 'c'); break; case 13: printf("%c", 'd'); break; case 14: printf("%c", 'e'); break; case 15: printf("%c", 'f'); break; default: printf("%d", num); break; } } //十进制转二进制 void convertto2(int num) { if (num ==1|| num==0) { printf("%d",num); } else { int n=num / 2; convertto2(n); printf("%d",num %2);//如果把这句话放在convertto2(n);之前就是顺序执行,显示是逆序,所以实现了余数的倒序排列。 } } //十进制转八进制 void convertto8(int num) { if (num < 8) { printf("%d", num); } else { int n = num / 8; convertto8(n); printf("%d", num % 8); } } //十进制转十六进制 void convertto16(int num) { if (num<16) { toletter(num); } else { int n = num / 16; convertto16(n ); toletter(num % 16); } } void main() { int num; printf("请输入一个整数"); scanf_s("%d",&num); printf("\n十进制转二进制:"); convertto2(num); printf("\n十进制转八进制:"); convertto8(num); printf("\n十进制转十六进制:"); convertto16(num); system("pause"); }
递归图解
相关文章推荐
- 两个C语言面试题---strlen()的实现 和 宏的应用
- [笔记]一道C语言面试题:实现冒泡排序
- 【面试题】C语言:使用函数实现两个数的交换
- 【C语言】【面试题】【笔试题】使用main函数实现一个整数计算器!
- 【C语言】【面试题】使用main函数的参数,实现一个整数计算机,程序可以接受三个参数
- 常见C语言面试题之八:数组实现大数阶乘
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcat函数
- (面试题)请用C语言实现在32位环境下,两个无符号长整数相加的函数,相加之和不能存储在64位变量中
- C语言实现进制转换
- 【C语言】【面试题】【笔试题】模拟实现数据库中memcpy函数
- [笔记]一道C语言面试题:实现快速排序
- C语言整数类型及printf格式化输出问题总结复习及进制转换的简单实现
- 一道多线程面试题-C语言实现
- 2016 C语言面试题——字符串函数的实现
- 百度面试题——用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
- [笔记]一道C语言面试题:实现 itoa() 函数
- 黑马程序员——进制转换巩固练习之c语言实现
- 剑指offer面试题:二维数组中的查找,C语言实现
- 【C语言】【面试题】【笔试题】.字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。
- 【C语言】【面试题】【笔试题】模拟实现数据库中strcpy函数