MOOC清华《程序设计基础》第2章:猜数游戏(from 1 to 100)
//******************************************* //程序名:GuessNumber(from1to100) //功 能:玩家心中想1到100中的一个数, // 给出7张卡片,让玩家说出哪几张 // 卡片上有这个数,然后计算机便能 // 判断出是哪个数 //编制人:刘聪 //时 间:2017年5月27日 //******************************************* #include <iostream> #include <cmath> using namespace std; int main() { int n, Binary, bit, bit_weight, counter, judge, Number; int card_number, take_remainder, take_quotient, i, j, k; int DecimalToBinary(int n); n = 0; Binary = 0; bit = 0; bit_weight = 1; counter = 0; judge = 0; Number = 0; card_number = 0; take_remainder = 1; take_quotient = 1; i = 0; j = 0; k = 0; cout<<"猜数游戏开始!请在心中默想一个1到100之间的整数,"<<endl <<"请看以下0#到6#,共7张卡片,是否有您所想的数字。"<<endl <<"若有,请说“1”;若无,请说“0”。"<<endl; for(card_number = 0; card_number < 7; card_number++) { cout<<endl<<"卡片 "<<card_number<<"#:"<<endl; for(i = 0, take_remainder = 1; i <= card_number ; i++) take_remainder = take_remainder * 10; for(j = 0, take_quotient = 1; j < card_number ; j++) take_quotient = take_quotient * 10; for(n = 1; n <= 100; n++) { Binary = DecimalToBinary(n); bit = Binary % take_remainder / take_quotient; if(bit == 1) { cout<<n<<'\t'; counter++; } if(counter == 5) { cout<<endl; counter = 0; } if((n == 100) && (counter != 0)) cout<<endl; if(n == 100) counter = 0; } cout<<"这张表有你想的数字吗?:"; cin>>judge; for(k = 0, bit_weight = 1; k < card_number ; k++) bit_weight = bit_weight * 2; if(judge == 1) { Number = bit_weight * 1 + Number; cout<<endl; } else { if(judge == 0) { Number = bit_weight * 0 + Number; cout<<endl; } else cout<<"输入错误。"; } } cout<<"您所猜的数字是:"<<Number<<endl; return 0; } int DecimalToBinary(int n) { int counter, quotient, remainder, 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 阅读(89) 评论(0) 编辑 收藏 举报