24点游戏的代码,支持界面,排行榜查询,答错纠错,no命令,有隐藏bug哦(算是小彩蛋)看不懂评论区问吧,有时间会解答,急就私戳吧
#include<iostream>
#include<iomanip>
#include<cstdlib>
#include <stdlib.h>
#include <stdio.h>
#include<ctime>
#include <string>
#include <stack>
#include <fstream>
#include <cassert>
using namespace std;
int allnumber[10] = { 1,2,3,4,5,6,7,8,9,10};
int score = 0;
double result;
char card[] = { '1','2','3','4','5','6','7','8','9','0' };
char pai[4] = { '@','@','@','@' };//对牌初始化
double nums[4];
char ope[4] = { '+','-','*','/' };
void GetCards(int a[])
{
for (int i = 0; i < 4; i++) {
pai[i] = '@';
}
while (pai[0] == '@' || pai[1] == '@' || pai[2] == '@' || pai[3] == '@')//若牌没有输入,则重新输入
{
int i = 0;
int j;
for (i = 0; i < 4; i++)
{
j = a[i];
pai[i] = card[j];
}
for (i = 0; i < 4; i++)
{
if (pai[i] == '1') nums[i] = 1;
if (pai[i] == '2') nums[i] = 2;
if (pai[i] == '3') nums[i] = 3;
if (pai[i] == '4') nums[i] = 4;
if (pai[i] == '5') nums[i] = 5;
if (pai[i] == '6') nums[i] = 6;
if (pai[i] == '7') nums[i] = 7;
if (pai[i] == '8') nums[i] = 8;
if (pai[i] == '9') nums[i] = 9;
if (pai[i] == '9') nums[i] = 9;
if (pai[i] == '0') nums[i] = 10;
}
}
cout << " 随机获得的4张牌为" << nums[0] << "," << nums[1] << "," << nums[2] << "," << nums[3] << "," << endl;
}
double calculate(double a, double b, char op)
{
if (op == '+') return a + b;
if (op == '-') return a - b;
if (op == '*') return a * b;
if ((op == '/') && (b != 0)) return a / b;
}
int qiongju()
{
double temp[3], tem[2];//第一个符号放置后,经过计算后相当于剩下三个数,这个数组用于存储这三个数
double sum;//求得的和
int judge = 0; //判断是否找到一个合理的解
for (int i = 0; i < 4; i++)//第一次放置的符号
{
for (int j = 0; j < 4; j++) //第二次放置的符号
{
for (int k = 0; k < 4; k++) //第三次放置的符号
{
for (int m = 0; m < 3; m++) //首先计算的两个相邻数字,共有3种情况,相当于括号的作用
{
if (nums[m + 1] == 0 && ope[i] == '/') break;
temp[m] = calculate(nums[m], nums[m + 1], ope[i]);
temp[(m + 1) % 3] = nu