输出1-1000的整数

846阅读 0评论2012-09-26 xbbHistory
分类:C/C++


  1. /*打印1——1000范围内的整数,但不能使用循环和条件语句,更不能使用1000次printf函数*/

  2. #include <stdio.h>
  3. #define LOW 1 //打印的起始值
  4. #define HIGH 1000 //终点值 (LOW<=HIGH)

  5. void YesPrint(int i);//打印i
  6. void NoPrint(int i); //打印换行符

  7. typedef void (*fnptr)(int); //函数指针

  8. fnptr display[] = {YesPrint,NoPrint};//函数指针数组
  9. int
  10. main()
  11. {
  12.     YesPrint(LOW);
  13.     return 0;
  14. }

  15. void YesPrint(int i)
  16. {
  17.     printf("%-5d", i);
  18.     display[i / HIGH](i+1); //在i没达到HIGH之前i / HIGH总是为0,这样就可以递归调用YesPrint
  19. }

  20. void NoPrint(int i)
  21. {
  22.     printf("\n");
  23. }

上一篇:王垠:对博士学位说永别
下一篇:修复笔记本电池损耗--立马见效