递归输出整数(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);
}
}
:->


浙公网安备 33010602011771号