淘宝的一道面试题是这样的:
写一个函数: int print_num(int k){}; 要求函数功能为打印k的降序,直到0结束,即如果k=5,即打印: 5 4 3 2 1 0
要求: 不能用 if , if else, switch, ?: , while, for , do while, goto 语句
#include <conio.h>
#include <stdio.h>
Int print_num(int k)
{
printf("%d ",k);
k&&print_num(k-1);
/*短路,&&运算符在左侧能够确定最终结果时不会对右侧操作求值 也就是说:当左侧判断k=0时,就不会再做右侧的判断,也就不会执行右侧的判断,就返回就OK了!不会再递归了!*/
Return k;
}
intmain()
{
inti;
Char c;
scanf("%d",&i);
print_num(i);
c=getchar();
/*GETCHAR读取的是在输入数字时所敲的回车,返回的ASCII值为10,无法停留DOS窗口 */
printf("%d",c);
getchar();
}