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

📄 24allfinished_none.c

📁 fgdgyh trtrh rrt ertge e er er
💻 C
📖 第 1 页 / 共 2 页
字号:
									expression[4][1] = eOperator;
									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
										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("可以这样运算:%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("可以这样运算:%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("可以这样运算:%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("可以这样运算:%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("可以这样运算:%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("这四个数字不能算出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月25日\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");
//	number[2][4] = {5,5,5,1};
while(t!=0){
	number[2][4]=randomm();
/*	number[0][0]= 5;
	number[0][1]= 5;
	number[0][2]= 5;
	number[0][3]= 1;*/
//	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("这四个数字是: %d   %d    %d   %d\n",number[0][0],number[0][1],number[0][2],number[0][3]);
//	printf("please input the arithmetic(算术)\n");
	printf("请输入算式:\n");
	printf("如果你认为这四个数算不出24点,请输入	?\n");
	printf("计算机将会给出答案,算不出也是一种答案!\n");
	printf("你的算式是:");
	scanf ("%s",s);
	if(s[0]=='?'){
		Calc24(number);
	}
	else
	{
		result=EvaluateExpression(s);
		printf("你输入的算式的结果是: %d \n",result);
		if(result==24){
				printf("恭喜您,你算对了!\n");
                        }
		else {
			printf("对不起,你算错了,谢谢!\n");
			}
	}
		printf("继续吗?请选择: '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("你的选择(输入)有误!\n"); 
			t=0;
       	}
}//end while
printf("如果你需要源程序或想与我讨论有关问题,欢迎与我联系^^\n");
printf("E-mail:ouyangj0@yahoo.com.cn  QQ:158487625  网名:谷穗\n");
printf("		再见!\n");
printf("按任意键结束(ENTER)除外!\n");
scanf(" %c",&ch);
}




⌨️ 快捷键说明

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