此题为用c++语言编写赌徒掷骰子的游戏,大致规则掷3次若3次点数相同,输出一个”豹子“;若3次之和大于10,则输出一个”大“;3次之和小于10,输出”小“。
此部分为条件判断部分如图
可以把变量c的数据类型改为string;
然后如果满足条件的各个结果都输出,例如,同时满足大,豹子,大豹子或小豹子,就可以把三个条件都使用if来逐个判断,如果只需要输出一条判断结果就可以使用if-else if-else语句;
然后当筛子点数为10时是否需要输出结果,如果需要的话就可以再增加一个if语句来进行判断输出。
测试代码如下:
参考链接:
#include <iostream>
#include <ctime>
using namespace std;
class Dice{
// https://www.cnblogs.com/LonelyMoNan/p/C.html
public:
int point;
Dice();
// https://blog.csdn.net/qq_43403759/article/details/113391196
int run();
};
Dice::Dice(){
// https://blog.csdn.net/weixin_43956732/article/details/109765323
srand(time(NULL));
}
int Dice::run(){
// https://blog.csdn.net/qq_37454669/article/details/123774733
point = rand()%5+1;
return point;
}
class Gambler{
public :
void play(Dice a,Dice b,Dice c);
};
void Gambler::play(Dice a,Dice b,Dice c){
int num1,num2,num3;
num1=a.run();
num2=b.run();
num3=c.run();
// num1=5;
// num2=5;
// num3=5;
// cout<<"num1="<<num1<<",num2="<<num2<<",num3="<<num3<<endl;
if(num1==num2&&num2==num3){
cout<<num1<<" "<<num2<<" "<<num3<<" 豹子"<<endl;
string c = num1+num2+num3>10?"大豹子":"小豹子";
cout<<c<<endl;
}
if((num1+num2+num3)>10){
cout<<num1<<" "<<num2<<" "<<num3<<" 大"<<endl;
}
if((num1+num2+num3)<10)
{
cout<<num1<<" "<<num2<<" "<<num3<<" 小"<<endl;
}
}
int main(void){
Dice d1,d2,d3;
Gambler game;
game.play(d1,d2,d3);
return 0;
}
#include <stdio.h>
int ti[11] = { 0 }; //用来存储每道题的回答情况0或者1,0表示错误,1表示正确
//提醒:数组ti的编号实际用1-10
//score表示当前得分,num是当前第num道题目
void f(int score, int num)
{
if (num == 11)//10道题目全部做完
{
if (score == 100)
{
int i = 0;
for (i = 1; i <= 10; i++)
printf("%d", ti[i]);
printf("\n");
}
}
else //10道题目没有做完
{
ti[num] = 1; //讨论第num道题目的正确情况
f(score * 2, num + 1);
ti[num] = 0; //讨论第num道题目的错误情况
f(score - num, num + 1);
}
}
int main(void)
{
f(10, 1);//从基础分10分开始,从第1题开始
return 0;
}