C语言经典题目“猜数字”代码

发布时间:2017-09-08 11:01:48   来源:文档文库   
字号:

:猜数字(选作)

有如下一组数字,其中每个数字都在 1 ~ 63 之间,

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63
2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 34 35 38 39 42 43 46 47 50 51 54 55 58 59 62 63
4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 36 37 38 39 44 45 46 47 52 53 54 55 60 61 62 63
8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 40 41 42 43 44 45 46 47 56 57 58 59 60 61 62 63
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

现在需要编写一个程序,当从键盘输入某数字在且仅在哪几行出现了,该程序可以出这个数字是几。

输入:

程序的输入是一串以空白符分开的数字,当输入 0 时表示输入结束。

输出:

输出猜到的数字。

程序:

#include

int main()

{

int a[7],m,n=0,i,p=0;

for (i=0;i<7;i++)

{

scanf("%d",&a[i]);

n++;

if (a[i]==0)

{

break;

}

scanf(" ");

}

for (m=1;m<64;m++)

{

p=0;

for (i=0;i<(n-1);i++)

{

if (a[i]==1)

{

if (m==m/2*2)

{p=1;break;}

}

if (a[i]==2)

{

if (m%4!=3&&m%4!=2)

{p=1;break;}

}

if (a[i]==3)

{

if (m%8!=4&&m%8!=5&&m%8!=6&&m%8!=7)

{p=1;break;}

}

if (a[i]==4)

{

if(m%16!=8&&m%16!=9&&m%16!=10&&m%16!=11&&m%16!=12&&m%16!=13&&m%16!=14&&m%16!=15)

{p=1;break;}

}

if (a[i]==5)

{

if (m>31&&m<48||m<16)

{p=1;break;}

}

if (a[i]==6)

{

if (m<32)

{p=1;break;}

}

}

if (p==0)

{

printf("%d\n",m);

break;

}

}

return 0;

}

本文来源:https://www.2haoxitong.net/k/doc/84ce4a48854769eae009581b6bd97f192279bf33.html

《C语言经典题目“猜数字”代码.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式