递归和while循环实现十进制转八进制
2015-04-08 20:47
120 查看
代码一(运行正确)
代码二(运行错误,不知为何)
#include<stdio.h> #include<stdlib.h> //递归实现10进制转2进制 void fun(int n) { int count=0; if(n==0) { return ; } else { fun(n/8); printf("%d",n%8); } } //非递归实现呢?while循环实现十进制转二进制 void While(int n) { printf("\nwhile实现十进制转八进制:\n"); int a[32]; int p,q;//p代表余数变量,q代表 取得多少位余数 int i=0; while(n) { p=n%8;//取余数 a[i]=p;//依次把取得的余数保存在数组a中 n/=8;//除2 i++; //数组下标加1 q++;//统计存了多少位在数组中,但会儿会倒序输出数组的值从而得到10进制对应的2进制 } for(i=q-1;i>=0;i--) { printf("%d",a[i]);//倒序输出 } printf("\n"); } int main() { int n; scanf("%d",&n); printf("递归实现十进制转八进制:\n"); fun(n); //似乎两次调用函数之间不能有换行???why??? //printf("\nwhile实现十进制转二进制:\n"); While(n); return 0; }
代码二(运行错误,不知为何)
#include<stdio.h> #include<stdlib.h> //递归实现 void fun(int n) { if(n==0) { return; } else { fun(n/8); printf("%d",n%8); } } //While循环实现十进制转八进制 void While(int n) { printf("\nwhile实现十进制转八进制:\n"); int a[32]; int p,q;//p代表余数变量,q代表 取得多少位余数 int i=0; while(n) { p=n%8;//取余 a[i]=p;//把余数存到数组中 n/=8;//切记要除以8.不然运行时就没提示任何反应了 i++;//数组下标自增 q++;//统计多少个余数,待会儿逆序输出 } for(i=q-1;i>=0;i--) { printf("%d",a[i]); } printf("\n"); } int main() { int n; scanf("%d",&n); printf("递归实现十进制转二进制:\n"); //fun(n); While(n); return 0; }
相关文章推荐
- 递归与while循环实现求n!
- hdu 1856 More is better(find函数的递归实现比while循环快7.8倍)
- 利用递归实现不定重数多重循环
- 初学者看过来:简单谈谈 C/C++ 递归的思想,实现,以及和循环的关系。
- 第4章_循环_计算器(while循环语句实现)
- [转]在 XSLT 中用递归实现循环
- 八皇后循环递归回溯实现
- 递归实现十进制转X进制
- php语法之while多循环实现输出多个表格的代码
- C++实现while循环的延迟—类似于钟表(之一)
- 初学者看过来:简单谈谈 C/C++ 递归的思想,实现,以及和循环的关系
- 单链表反转的循环及递归实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- asm source code note 1.4_do_while循环的实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 用PHP实现递归循环每一个目录
- 用递归方式实现十进制转十六进制
- 二分查找法的C语言实现:递归与循环
- 一道题目,学到了递归while实现和“<<”运算级
- 利用递归实现不定重数多重循环(附源代码)