MOOC清华《程序设计基础》第2章:猜数游戏(from 1 to 50)
//******************************************* //程序名:GuessNumber(from1to50) //功 能:玩家心中想1到50中的一个数, // 给出6张卡片,让玩家说出哪几张 // 卡片上有这个数,然后计算机便能 // 判断出是哪个数 //编制人:刘聪 //时 间:2017年5月26日 //******************************************* #include <iostream> #include <cmath> using namespace std; int main() { int n, Binary, bit, counter, judge, Number; int DecimalToBinary(int n); n = 0; Binary = 0; bit = 0; counter = 0; judge = 0; Number = 0; cout<<"猜数游戏开始!请在心中默想一个1到50之间的整数,"<<endl <<"请看以下0#到5#,共6张卡片,是否有您所想的数字。"<<endl <<"若有,请说“1”;若无,请说“0”。"<<endl; cout<<endl<<"卡片 0#:"<<endl; for(n = 1;n <= 50; n++) { Binary = DecimalToBinary(n); bit = Binary % 10 / 1; if(bit == 1) { cout<<n<<'\t'; counter++; } if(counter == 5) { cout<<endl; counter = 0; } if((n == 50) && (counter != 0)) cout<<endl; if(n == 50) counter = 0; } cout<<"这张表有你想的数字吗?:"; cin>>judge; if(judge == 1) { Number = 1 * 1 + Number; cout<<endl; } else { if(judge == 0) { Number = 1 * 0 + Number; cout<<endl; } else cout<<"输入错误。"; } cout<<endl<<"卡片 1#:"<<endl; for(n = 1;n <= 50; n++) { Binary = DecimalToBinary(n); bit = Binary % 100 / 10; if(bit == 1) { cout<<n<<'\t'; counter++; } if(counter == 5) { cout<<endl; counter = 0; } if((n == 50) && (counter != 0)) cout<<endl; if(n == 50) counter = 0; } cout<<"这张表有你想的数字吗?:"; cin>>judge; if(judge == 1) { Number = 2 * 1 + Number; cout<<endl; } else { if(judge == 0) { Number = 2 * 0 + Number; cout<<endl; } else cout<<"输入错误。"; } cout<<endl<<"卡片 2#:"<<endl; for(n = 1;n <= 50; n++) { Binary = DecimalToBinary(n); bit = Binary % 1000 / 100; if(bit == 1) { cout<<n<<'\t'; counter++; } if(counter == 5) { cout<<endl; counter = 0; } if((n == 50) && (counter != 0)) cout<<endl; if(n == 50) counter = 0; } cout<<"这张表有你想的数字吗?:"; cin>>judge; if(judge == 1) { Number = 4 * 1 + Number; cout<<endl; } else { if(judge == 0) { Number = 4 * 0 + Number; cout<<endl; } else cout<<"输入错误。"; } cout<<endl<<"卡片 3#:"<<endl; for(n = 1;n <= 50; n++) { Binary = DecimalToBinary(n); bit = Binary % 10000 / 1000; if(bit == 1) { cout<<n<<'\t'; counter++; } if(counter == 5) { cout<<endl; counter = 0; } if((n == 50) && (counter != 0)) cout<<endl; if(n == 50) counter = 0; } cout<<"这张表有你想的数字吗?:"; cin>>judge; if(judge == 1) { Number = 8 * 1 + Number; cout<<endl; } else { if(judge == 0) { Number = 8 * 0 + Number; cout<<endl; } else cout<<"输入错误。"; } cout<<endl<<"卡片 4#:"<<endl; for(n = 1;n <= 50; n++) { Binary = DecimalToBinary(n); bit = Binary % 100000 / 10000; if(bit == 1) { cout<<n<<'\t'; counter++; } if(counter == 5) { cout<<endl; counter = 0; } if((n == 50) && (counter != 0)) cout<<endl; if(n == 50) counter = 0; } cout<<"这张表有你想的数字吗?:"; cin>>judge; if(judge == 1) { Number = 16 * 1 + Number; cout<<endl; } else { if(judge == 0) { Number = 16 * 0 + Number; cout<<endl; } else cout<<"输入错误。"; } cout<<endl<<"卡片 5#:"<<endl; for(n = 1;n <= 50; n++) { Binary = DecimalToBinary(n); bit = Binary % 1000000 / 100000; if(bit == 1) { cout<<n<<'\t'; counter++; } if(counter == 5) { cout<<endl; counter = 0; } if((n == 50) && (counter != 0)) cout<<endl; if(n == 50) counter = 0; } cout<<"这张表有你想的数字吗?:"; cin>>judge; if(judge == 1) { Number = 32 * 1 + Number; cout<<endl; } else { if(judge == 0) { Number = 32 * 0 + Number; cout<<endl; } else cout<<"输入错误。"; } cout<<"您所猜的数字是:"<<Number<<endl; return 0; } int DecimalToBinary(int n) { int quotient, remainder, counter, Binary, i; counter = 0; quotient = 0; remainder = 0; Binary = 0; i = 0; while((quotient = n / 2 ) > 0) { remainder = n % 2; n = quotient; counter++; if(remainder == 1) { for(i = counter; i > 1; i--) remainder = remainder * 10; Binary = remainder + Binary; } } remainder = 1; counter++; for(i = counter; i > 1; i--) remainder = remainder * 10; Binary = remainder + Binary; return Binary; }
软件业务请联系QQ:3121432464“正聪科技客服”
posted on 2017-10-05 18:17 sunshineman1986 阅读(110) 评论(0) 编辑 收藏 举报