| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2766 人关注过本帖, 1 人收藏
标题:我记得以前有一题“输入一个整数n,不用判断循环语句顺序输出1~n”,这题现 ...
只看楼主 加入收藏
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
结帖率:100%
收藏(1)
已结贴  问题点数:30 回复次数:22 
我记得以前有一题“输入一个整数n,不用判断循环语句顺序输出1~n”,这题现在怎么找不着了?
如题,不用循环和判断语句,输入5,输出1,2,3,4,5
当时想不出来,见识了各位大大的神技,叹为观止,今天自己想出了一个,本想再看看之前各位的代码,无奈找不着了。
各位大大能否再让我看看代码?~下面是我的,略复杂……
程序代码:
#include <stdio.h>
int kk=1,i;
unsigned aa;
int main(int argc, const char *argv[])
{
    int *p;
    unsigned f;
    asm volatile("movl %%ebp,%0"
            :"=r"(f));
    f=(unsigned)((int *)f+1);
    p = (int *)f;
    (kk==1) && (aa = *p,scanf("%d",&i));
    (kk<i) && (*p = (unsigned)main) || (*p = aa);
    printf("n = %d\n",kk);
    kk++;
    return 0;
}

2012-10-12 10:50
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:0 
顶一下!
2012-10-12 11:26
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:0 
还看不懂,收藏了

www.qunxingw.wang
2012-10-12 11:35
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:30 
程序代码:
#include <stdio.h>

int f(int i, int n)
{
    i <= n && printf("%d\n", i) && f(i + 1, n);
    return i;
}

int main(void)
{
    int n;
    scanf("%d", &n);
    f(1, n);
    return 0;
}

My life is brilliant
2012-10-12 12:07
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
没看懂 好复杂。。。
2012-10-12 12:28
jd2011122115
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2012-10-11
收藏
得分:0 
回复 4楼 lz1091914999
为什么不能将函数f定义成void类型呢?
2012-10-12 13:05
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:0 
以下是引用lz1091914999在2012-10-12 12:07:11的发言:

#include  
 
int f(int i, int n)
{
    i <= n && printf("%d\n", i) && f(i + 1, n);
    return i;
}
 
int main(void)
{
    int n;
    scanf("%d", &n);
    f(1, n);
    return 0;
}
哦哦~对我上次看的就差不多是这样,记得还有一个调用函数指针的。
各有各的法但是关键还是 [(表达式)&&(表达式)]这样的语句代替if之类的语句
2012-10-12 14:29
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:0 
以下是引用zklhp在2012-10-12 12:28:44的发言:

没看懂 好复杂。。。
…………我记得z版也给出了个答案,使用信号的
2012-10-12 14:29
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 6楼 jd2011122115
因为&&是二元运算符。改成void编译就不能通过。

My life is brilliant
2012-10-12 14:33
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 7楼 obstratiker
利用短路的方式。

My life is brilliant
2012-10-12 14:35
快速回复:我记得以前有一题“输入一个整数n,不用判断循环语句顺序输出1~n”, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013523 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved