wayne 发表于 2011-7-13 18:54:49

15# mathe
try好像 是 C++里面的吧

mathe 发表于 2011-7-13 18:56:00

Windows和Linux好像都有对应C扩展,可能语法有一点不同

wayne 发表于 2011-7-13 20:03:06

22# mathe
再来一个:#include<stdio.h>
#include<stdlib.h>
void main(int j) {
    printf("%d", j);
    (main + (exit - main)*(j/1000))(j+1);
}

wayne 发表于 2011-7-13 20:05:00

void func(int n)
{
    int tmp = 1 / n;
    printf("%d ", 1001 - n);
    fflush(stdout);
    func(n - 1);
}
void sig_fpe(int signo)
{
    printf("DONE.n");
    exit(0);
}
int main(void)
{
    signal(SIGFPE, sig_fpe); /* 接收到除0的异常的信号后进行处理. */
    func(1000);
    return 0;
}

wayne 发表于 2011-7-13 20:05:33

http://icoder.cloudcontrolled.com/index.php/2011/02/09/print-1-to-1000-without-loop-and-condition-statement//* C, 推荐! */
void yesprint(int i);
void noprint(int i);

typedef void(*fnPtr)(int);
fnPtr dispatch[] = { yesprint, noprint }; /* 函数数组:
                         dispatch = yesprint,
                         dispatch = noprint. */

void yesprint(int i) {
    printf("%dn", i);
    dispatch(i + 1); /* i < 1000时,i/1000==0, 因此继续递归,
                  当i==1000时i/1000==1, 因此noprint被调用. */
}

void noprint(int i) { /* do nothing. */ }

int main() {
      yesprint(1);
}

liangbch 发表于 2011-7-13 21:03:27

23#,24#,25# 构思巧妙,学习了

G-Spider 发表于 2011-7-13 21:28:52

25# wayne
也来一个。#include <stdio.h>
void main(int j)
{       
   void (* f[])() = {main,getchar};
   printf("%d ", j);
   f[!(1000-j)](j+1);
} #include <stdio.h>
int main(int j)
{   
        printf("%d ",j);
        return( !(1000-j) || main(j+1));

}

gxqcn 发表于 2011-7-14 08:32:10

mathe 运用宏巧妙的简化了程序代码,
其他的则避开显式的“循环、判断”语句,但通过设计奇特的终止条件而达成目的。
都非常巧妙!

wayne 发表于 2011-7-14 10:16:49

27# G-Spider
利用 return 0 的终止 和main(n)的递归调用,妙!

G-Spider 发表于 2011-7-14 11:00:52

#include <stdio.h>

#define a printf("%d ",i++);

#define b(x) x x x x x
#define Print1000 b(b(b(a a a a a a a a))) //1000=5*5*5*8

//#define b(x) x x x x x x x x x x
//#define Print1000 b(b(b(a))) //1000=10*10*10

void main ( int i )
{         
        Print1000;
}
页: 1 2 [3] 4 5
查看完整版本: C/C++,打印整数1到1000,不使用循环,条件语言