用C++不用数组自定义一个函数,当五个骰子中有三个骰子点数相同时放入这个函数,再定义一个函数,计算在上个函数的场景下的所有骰子之和,随机投五个骰子
时间: 2023-05-21 16:01:05 浏览: 90
zoj 3151 Dice Compare.md
可以使用变量来记录五个骰子的点数,然后通过 if 语句来判断是否有三个骰子点数相同,如果有,则将这三个骰子的点数相加并返回结果。代码如下:
int check_three_same(int dice1, int dice2, int dice3, int dice4, int dice5) {
int sum = 0;
if (dice1 == dice2 && dice2 == dice3) {
sum = dice1 + dice2 + dice3;
} else if (dice2 == dice3 && dice3 == dice4) {
sum = dice2 + dice3 + dice4;
} else if (dice3 == dice4 && dice4 == dice5) {
sum = dice3 + dice4 + dice5;
} else if (dice1 == dice3 && dice3 == dice5) {
sum = dice1 + dice3 + dice5;
} else if (dice1 == dice4 && dice4 == dice5) {
sum = dice1 + dice4 + dice5;
}
return sum;
}
然后可以再定义一个函数,用来计算所有骰子的点数之和。代码如下:
int sum_dice(int dice1, int dice2, int dice3, int dice4, int dice5) {
return dice1 + dice2 + dice3 + dice4 + dice5;
}
最后,可以在主函数中随机生成五个骰子的点数,并调用上述两个函数来计算结果。代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int check_three_same(int dice1, int dice2, int dice3, int dice4, int dice5) {
// 略
}
int sum_dice(int dice1, int dice2, int dice3, int dice4, int dice5) {
// 略
}
int main() {
srand(time(NULL)); // 初始化随机数生成器
int dice1 = rand() % 6 + 1;
int dice2 = rand() % 6 + 1;
int dice3 = rand() % 6 + 1;
int dice4 = rand() % 6 + 1;
int dice5 = rand() % 6 + 1;
int sum = check_three_same(dice1, dice2, dice3, dice4, dice5);
if (sum == 0) {
sum = sum_dice(dice1, dice2, dice3, dice4, dice5);
}
printf("骰子点数分别为:%d %d %d %d %d\n", dice1, dice2, dice3, dice4, dice5);
printf("结果为:%d\n", sum);
return 0;
}
阅读全文