一个简单的小问题
活跃气氛,顺便散分新手老鸟都来试试
写一个函数: 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;
}