搜索
查看: 2725|回复: 16
打印 上一主题 下一主题

计算机读心术

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-12 08:32:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
废话少说,直接上源代码
#include <stdio.h>
#include <stdlib.h>
#define M 16
main()
{
        int i,j,num=0;
    char ch;
    int a[5][M]={{1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31},
    {2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31},
    {4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31},
    {8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31},
    {16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}};
    printf("____________________________________________________________________________\n");
    printf("\n\t\t\t我知你心,你信吗?(^-^)\n");
    for(i=0;i<5;i++)
    {
                printf("[%d]\t",i+1);
        for(j=0;j<M;j++)
                        printf("%d  ",a[i][j]);
        printf("\n\n");
    }
    printf("____________________________________________________________________________\n");
    printf("\n告诉我你想的数字所在的行:\n");
    for(i=1;i<6;i++)
    {
                printf("你所想的数字在%d行(Y/N)?",i);
        ch=getchar();
        getchar();
        if(ch=='y'||ch=='Y')
        {
                        printf("**(^-^)**\n");
            num+=1<<(i-1);
        }
        else
                        printf("??(-_-)??\n");
    }
    printf("你所想的数字是 %d! **(^-^)**.\n",num);
    printf("____________________________________________________________________________\n");
        system("pause");
        return 0;
}
欢迎大家来研究原理
沙发
 楼主| 发表于 2013-11-12 08:59:29 | 只看该作者
请使用工具条复制代码,否则就会出现问号
板凳
 楼主| 发表于 2013-11-12 09:19:23 | 只看该作者
这里怎么没人啊,难道编译失败?
地板
发表于 2013-11-13 02:35:27 | 只看该作者
嘛,每行16个数,通过5行哪一行有这个数,缩小范围,以此采用了排除的方式,实现猜数
5#
 楼主| 发表于 2013-11-13 08:50:33 | 只看该作者
河蟹 发表于 2013-11-13 02:35
嘛,每行16个数,通过5行哪一行有这个数,缩小范围,以此采用了排除的方式,实现猜数

NONONO,是关于二进制的
6#
发表于 2013-11-13 11:32:06 | 只看该作者
本帖最后由 河蟹 于 2013-11-13 11:44 编辑
4399APPLE 发表于 2013-11-13 08:50
NONONO,是关于二进制的

额,没有去仔细看,不过关键的一步应该是 num+=1<<(i-1);按一定规律将数值放入数组当中,然后通过循环和IF判断是否进行位操作,从而选出特定的数值
7#
 楼主| 发表于 2013-11-13 14:52:17 | 只看该作者
河蟹 发表于 2013-11-13 11:32
额,没有去仔细看,不过关键的一步应该是 num+=1

嗯嗯,聪明
8#
 楼主| 发表于 2013-11-17 17:52:36 | 只看该作者
河蟹 发表于 2013-11-13 11:32
额,没有去仔细看,不过关键的一步应该是 num+=1

记住:看代码一定要仔细
9#
发表于 2013-11-24 11:39:26 | 只看该作者
这不就是我以前玩的魔术么,,数学小问题~~~
10#
 楼主| 发表于 2013-11-24 12:15:33 | 只看该作者
丶Maped 发表于 2013-11-24 11:39
这不就是我以前玩的魔术么,,数学小问题~~~

你能用心计算2的i-1次方?
11#
 楼主| 发表于 2013-11-27 12:40:29 | 只看该作者
丶Maped 发表于 2013-11-24 11:39
这不就是我以前玩的魔术么,,数学小问题~~~


你能用心计算2的i-1次方?
12#
发表于 2014-7-24 18:47:42 | 只看该作者
int main()
13#
发表于 2014-7-25 17:40:45 | 只看该作者
做的不错,赞一个!~\(≧▽≦)/~
14#
发表于 2014-7-27 09:32:35 | 只看该作者
算法有问题,简单举例,你默想是第5行的31,程序运行结果是16,是错的,。另外程序没有对输入进行限制,用户可以不按提示输入怎么办?
15#
发表于 2014-9-14 12:19:04 | 只看该作者
说得不错,有收获,顶一下












高清3d电视棒  012z.cn  日本 电视棒 windows8.1正版下载  811l.cn
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表