递归输出整数(C 语言版)
好久没有写过 C 语言的代码了,大一上半学期必修课有 C 语言,不过现在大三,因为一直没有写过所以忘得也差不多了,这一段时间想补一补数据结构的知识,去图书馆借了本 C 语言版的《数据结构与算法分析》,也巩固一下 C 语言。
小小练手的题目:说是有一个正整数 n ,写一个递归算法来输出 n 。
不得不说,偶犯了一个“愚蠢”的错误,来看看一开始写的代码:
#include "stdio.h" int main() { void printOut(unsigned int n) { printf("%d", n % 10); if(n >= 10) { printOut(n / 10); } } printOut(1234); }
很神奇吧?!我也不知道我为啥写出个这个一直报错的东东,怎么看都没错呀?!这是怎么一回事儿呢?最后查看了 C 语言函数调用的相关资料才知道:1:自定义函数需要先声明;2:自定义函数不能写在 main() 主函数里!唉~ 我这个 C 语言基础!估计也有可能是写 Javascript 写习惯了…改过来吧:
#include "stdio.h" void printOut(); //声明自定义函数 int main() { printOut(1234); //函数调用 } void printOut(unsigned int n) //函数体 { if(n >= 10) { printOut(n / 10); } printf("%d", n % 10); }
输出:1234
Tips: 要是想反序输出这个整数呢?其实只要调换一下语句顺序:
#include "stdio.h" void printOut(); //声明自定义函数 int main() { printOut(1234); //函数调用 } void printOut(unsigned int n) //函数体 { printf("%d", n % 10); if(n >= 10) { printOut(n / 10); } }
:->