⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 24finished.c

📁 fgdgyh trtrh rrt ertge e er er
💻 C
📖 第 1 页 / 共 2 页
字号:
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
									//	printf("ok!\n");
									//	CombineResult(expression, 7);//组织结果表达式
									//	printf("%d,%d,%d,%d,%d,%d,%d\n",i,ii,j,jj,k,kk,l);
									//	printf("%d%c\n",expression[i][0],oper[ii]);
										printf("%c%d%c%d%c%c%d%c%d\n",oper[4],expression[1][0],oper[ii],expression[3][0],oper[5],oper[jj],expression[6][0],oper[kk],expression[8][0]);
										return TRUE;
										
									}
								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}


int CalcArray3(int iNumInput[2][4])
{
	// (a * b * c) * d	//9 number
	int expression[10][2];
	int ii,jj,i,j,k,l,kk;
	int dRes;
	printf("CalcArray3\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)    
        {
            if(j==i)
            {
                continue;
            }
            for(k=0;k<4;k++)
            {
                if(k==i||k==j)
                {
                    continue;
                }
                for(l=0;l<4;l++)
                {
                    if(l==i||l==j||l==k)
                    {
                        continue;
                    }
                    expression[1][0]=iNumInput[0][i];
                    expression[3][0]=iNumInput[0][j];
                    expression[5][0]=iNumInput[0][k];
                    expression[8][0]=iNumInput[0][l];

					expression[1][1]=eNumber;
					expression[3][1]=eNumber;
					expression[5][1]=eNumber;
					expression[8][1]=eNumber;
					for (ii=0;ii<4;ii++)
					{
						for (jj=0;jj<4;jj++)
						{
							for (kk=0;kk<4;kk++)
							{

									expression[2][0] = oper[ii];
									expression[2][1] = eOperator;
									expression[4][0] = oper[jj];
									expression[4][1] = eOperator;
									expression[7][0] = oper[kk];
									expression[7][1] = eOperator;
									expression[9][0] = oper[6];
									expression[9][1] = eOperator;
									expression[0][0] = oper[4];
									expression[0][1] = eOperator;
									expression[6][0] = oper[5];
									expression[6][1] = eOperator;
									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
									//	printf("ok!\n");
									//	CombineResult(expression, 7);//组织结果表达式
									//	printf("%d,%d,%d,%d,%d,%d,%d\n",i,ii,j,jj,k,kk,l);
									//	printf("%d%c\n",expression[i][0],oper[ii]);
										printf("%c%d%c%d%c%d%c%c%d\n",oper[4],expression[1][0],oper[ii],expression[3][0],oper[jj],expression[5][0],oper[5],oper[kk],expression[8][0]);
										return TRUE;
										
									}
								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}


int CalcArray4(int iNumInput[2][4])
{
	// (a * b * c) * d	//9 number
	int expression[10][2];
	int ii,jj,i,j,k,l,kk;
	int dRes;
	printf("CalcArray4\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)    
        {
            if(j==i)
            {
                continue;
            }
            for(k=0;k<4;k++)
            {
                if(k==i||k==j)
                {
                    continue;
                }
                for(l=0;l<4;l++)
                {
                    if(l==i||l==j||l==k)
                    {
                        continue;
                    }
                    expression[0][0]=iNumInput[0][i];
                    expression[3][0]=iNumInput[0][j];
                    expression[5][0]=iNumInput[0][k];
                    expression[8][0]=iNumInput[0][l];

					expression[0][1]=eNumber;
					expression[3][1]=eNumber;
					expression[5][1]=eNumber;
					expression[8][1]=eNumber;
					for (ii=0;ii<4;ii++)
					{
						for (jj=0;jj<4;jj++)
						{
							for (kk=0;kk<4;kk++)
							{

									expression[1][0] = oper[ii];
									expression[1][1] = eOperator;
									expression[4][0] = oper[jj];
									expression[4][1] = eOperator;
									expression[7][0] = oper[kk];
									expression[7][1] = eOperator;
									expression[9][0] = oper[6];
									expression[9][1] = eOperator;
									expression[2][0] = oper[4];
									expression[2][1] = eOperator;
									expression[6][0] = oper[5];
									expression[6][1] = eOperator;
									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
									//	printf("ok!\n");
									//	CombineResult(expression, 7);//组织结果表达式
									//	printf("%d,%d,%d,%d,%d,%d,%d\n",i,ii,j,jj,k,kk,l);
									//	printf("%d%c\n",expression[i][0],oper[ii]);
										printf("%d%c%c%d%c%d%c%c%d\n",expression[0][0],oper[ii],oper[4],expression[3][0],oper[jj],expression[5][0],oper[5],oper[kk],expression[8][0]);
										return TRUE;
										
									}
								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}


int CalcArray5(int iNumInput[2][4])
{
	// (a * b) * (c * d)	//11 number
	int expression[12][2];
	int ii,jj,i,j,k,l,kk;
	int dRes;
	printf("CalcArray5\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)    
        {
            if(j==i)
            {
                continue;
            }
            for(k=0;k<4;k++)
            {
                if(k==i||k==j)
                {
                    continue;
                }
                for(l=0;l<4;l++)
                {
                    if(l==i||l==j||l==k)
                    {
                        continue;
                    }
                    expression[1][0]=iNumInput[0][i];
                    expression[3][0]=iNumInput[0][j];
                    expression[7][0]=iNumInput[0][k];
                    expression[9][0]=iNumInput[0][l];

					expression[1][1]=eNumber;
					expression[3][1]=eNumber;
					expression[7][1]=eNumber;
					expression[9][1]=eNumber;
					for (ii=0;ii<4;ii++)
					{
						for (jj=0;jj<4;jj++)
						{
							for (kk=0;kk<4;kk++)
							{

									expression[2][0] = oper[ii];
									expression[2][1] = eOperator;
									expression[5][0] = oper[jj];
									expression[5][1] = eOperator;
									expression[8][0] = oper[kk];
									expression[8][1] = eOperator;
									expression[11][0] = oper[6];
									expression[11][1] = eOperator;
									expression[0][0] = oper[4];
									expression[0][1] = eOperator;
									expression[6][0] = oper[4];
									expression[6][1] = eOperator;
									expression[4][0] = oper[5];
									expression[4][1] = eOperator;
									expression[10][0] = oper[5];
									expression[10][1] = eOperator;

									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
									//	printf("ok!\n");
									//	CombineResult(expression, 7);//组织结果表达式
									//	printf("%d,%d,%d,%d,%d,%d,%d\n",i,ii,j,jj,k,kk,l);
									//	printf("%d%c\n",expression[i][0],oper[ii]);
										printf("%c%d%c%d%c%c%c%d%c%d%c\n",oper[4],expression[1][0],oper[ii],expression[3][0],oper[5],oper[jj],oper[4],expression[7][0],oper[kk],expression[9][0],oper[5]);
										return TRUE;
										
									}
								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}


int CalcArray6(int iNumInput[2][4])
{
	// ((a * b) * c) * d	//11 number
	int expression[12][2];
	int ii,jj,i,j,k,l,kk;
	int dRes;
	printf("CalcArray6\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)    
        {
            if(j==i)
            {
                continue;
            }
            for(k=0;k<4;k++)
            {
                if(k==i||k==j)
                {
                    continue;
                }
                for(l=0;l<4;l++)
                {
                    if(l==i||l==j||l==k)
                    {
                        continue;
                    }
                    expression[2][0]=iNumInput[0][i];
                    expression[4][0]=iNumInput[0][j];
                    expression[7][0]=iNumInput[0][k];
                    expression[10][0]=iNumInput[0][l];

					expression[2][1]=eNumber;
					expression[4][1]=eNumber;
					expression[7][1]=eNumber;
					expression[10][1]=eNumber;
					for (ii=0;ii<4;ii++)
					{
						for (jj=0;jj<4;jj++)
						{
							for (kk=0;kk<4;kk++)
							{

									expression[3][0] = oper[ii];
									expression[3][1] = eOperator;
									expression[6][0] = oper[jj];
									expression[6][1] = eOperator;
									expression[9][0] = oper[kk];
									expression[9][1] = eOperator;
									expression[11][0] = oper[6];
									expression[11][1] = eOperator;
									expression[0][0] = oper[4];
									expression[0][1] = eOperator;
									expression[1][0] = oper[4];
									expression[1][1] = eOperator;
									expression[5][0] = oper[5];
									expression[5][1] = eOperator;
									expression[8][0] = oper[5];
									expression[8][1] = eOperator;

									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
									//	printf("ok!\n");
									//	CombineResult(expression, 7);//组织结果表达式
									//	printf("%d,%d,%d,%d,%d,%d,%d\n",i,ii,j,jj,k,kk,l);
									//	printf("%d%c\n",expression[i][0],oper[ii]);
										printf("%c%c%d%c%d%c%c%d%c%c%d\n",oper[4],oper[4],expression[2][0],oper[ii],expression[4][0],oper[5],oper[jj],expression[7][0],oper[5],oper[kk],expression[10][0]);
										return TRUE;
										
									}
								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}


int CalcArray7(int iNumInput[2][4])
{
	// (a * b * c) * d	//9 number
	int expression[12][2];
	int ii,jj,i,j,k,l,kk;
	int dRes;
	printf("CalcArray7\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)    
        {
            if(j==i)
            {
                continue;
            }
            for(k=0;k<4;k++)
            {
                if(k==i||k==j)
                {
                    continue;
                }
                for(l=0;l<4;l++)
                {
                    if(l==i||l==j||l==k)
                    {
                        continue;
                    }
                    expression[1][0]=iNumInput[0][i];
                    expression[4][0]=iNumInput[0][j];
                    expression[6][0]=iNumInput[0][k];
                    expression[10][0]=iNumInput[0][l];

					expression[1][1]=eNumber;
					expression[4][1]=eNumber;
					expression[6][1]=eNumber;
					expression[10][1]=eNumber;
					for (ii=0;ii<4;ii++)
					{
						for (jj=0;jj<4;jj++)
						{
							for (kk=0;kk<4;kk++)
							{

									expression[2][0] = oper[ii];
									expression[2][1] = eOperator;
									expression[5][0] = oper[jj];
									expression[5][1] = eOperator;
									expression[9][0] = oper[kk];
									expression[9][1] = eOperator;
									expression[11][0] = oper[6];
									expression[11][1] = eOperator;
									expression[0][0] = oper[4];
									expression[0][1] = eOperator;
									expression[3][0] = oper[4];
									expression[3][1] = eOperator;
									expression[7][0] = oper[5];
									expression[7][1] = eOperator;
									expression[8][0] = oper[5];
									expression[8][1] = eOperator;

									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
									//	printf("ok!\n");
									//	CombineResult(expression, 7);//组织结果表达式
									//	printf("%d,%d,%d,%d,%d,%d,%d\n",i,ii,j,jj,k,kk,l);
									//	printf("%d%c\n",expression[i][0],oper[ii]);
										printf("%c%d%c%c%d%c%d%c%c%c%d\n",oper[4],expression[1][0],oper[ii],oper[4],expression[4][0],oper[jj],expression[6][0],oper[5],oper[5],oper[kk],expression[10][0]);
										return TRUE;
										
									}
								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}



int Calc24(int number[2][4])
{
	int find=0;
	//括号的几种情况
	//1	无括号
	//2 (a b) c d		同a b (c d), 下省略
	//3 (a b c) d
	//4 a (b c) d
	//5 (a b) (c d)
	//6 ((a b) c) d
	//7 (a (b c)) d

	//计算不含括号的情况

	if (CalcArray1(number))
	{
		
		find=1;
		return TRUE;
	}

	if (CalcArray2(number))
	{
		
		find=1;
		return TRUE;
	}

	if (CalcArray3(number))
	{
		find=1;
		return TRUE;
	}

	if (CalcArray4(number))
	{
		find=1;
		return TRUE;
	}

	if (CalcArray5(number))
	{
		find=1;
		return TRUE;
	}

	if (CalcArray6(number))
	{
		find=1;
		return TRUE;
	}

	if (CalcArray7(number))
	{
		find=1;
		return TRUE;
	}
	if(find==0)
	{
		printf("These numbers cannot be combined to 24\n");
	}
	return FALSE;
	
}

void main(){
	char s[40],ch;
	int result,t=1;
	printf("/***************************************************/\n");
	printf("                 24点游戏   dos  版本1.0\n");
	printf("      北京工商大学微机024班 欧阳锦林 版权所有\n");
	printf("                 完成于2004年4月15日\n");
	printf("/***************************************************/\n");
	printf("When you input the formula,\n");
	printf("you should look A as 1,J as 11,Q as 12,k as 13\n");
while(t!=0){
	number[2][4]=randomm();
	printf("When you input the formula,\n");
//	printf("you should look A as 1,J as 11,Q as 12,k as 13\n");	
	printf("The four numbers are %d	  ,%d  ,%d  ,%d\n",number[0][0],number[0][1],number[0][2],number[0][3]);
	printf("please input the arithmetic(算术)\n");
	printf("如果你认为这四个数算不出24点,请输入?\n");
	printf("计算机将会给出答案,算不出也是一种答案!\n");
	scanf ("%s",s);
	if(s[0]=='?'){
		Calc24(number);
	}
	else
	{
		result=EvaluateExpression(s);
		printf("Your result is %d \n",result);
		if(result==24){
				printf("Very good!!It's right.\n");
                        }
		else {
			printf("sorry!You are wrong!Thank you!\n");
			}
	}
		printf("Contine?Or not??please input Y/N??\n");
   		scanf(" %c",&ch);
		printf("the choic is %c\n",ch);
		if(ch=='n'||ch=='N'){
			t=0;
		}
		else  if (ch=='Y'||ch=='y')   t=1;
	//	else{
	//		printf("your choic is not exact!!"); 
	//		t=0;
  //     	}
	//	t=0;
}//end while

	//printf("all finished!the result is %d\n",result);
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -