一个简单的小问题
活跃气氛,顺便散分新手老鸟都来试试
写一个函数: int print_num(int k){}; 要求函数功能为打印k的降序,直到0结束,即如果k=5,即打印: 5 4 3 2 1 0
要求: 不能用 if , if else, switch, ?: , while, for , do while, goto 语句
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int print_num(int k) { 5 6 int (*pn[2])(int) = {print_num,exit}; 7 k== -1 || printf("%d\n",k); 8 pn[(k+10)/10](k-1); 9 } 10 11 int main(void) { 12 print_num(5); 13 return 0; 14 }
#include <stdio.h> #include <stdlib.h> #include <signal.h> void __cdecl divzero_handle(int sig) { printf("\n加一个优雅的退出"); exit(0); } int print_num(int k) { int i = 0; printf("%d ", k); i = 5 / k; return print_num(--k); } int main(void) { signal(SIGFPE, divzero_handle); print_num(5); return 0; }