- /*打印1——1000范围内的整数,但不能使用循环和条件语句,更不能使用1000次printf函数*/
- #include <stdio.h>
- #define LOW 1 //打印的起始值
- #define HIGH 1000 //终点值 (LOW<=HIGH)
- void YesPrint(int i);//打印i
- void NoPrint(int i); //打印换行符
- typedef void (*fnptr)(int); //函数指针
- fnptr display[] = {YesPrint,NoPrint};//函数指针数组
- int
- main()
- {
- YesPrint(LOW);
- return 0;
- }
- void YesPrint(int i)
- {
- printf("%-5d", i);
- display[i / HIGH](i+1); //在i没达到HIGH之前i / HIGH总是为0,这样就可以递归调用YesPrint
- }
- void NoPrint(int i)
- {
- printf("\n");
- }