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

📄 24allfinished_none2.dat

📁 fgdgyh trtrh rrt ertge e er er
💻 DAT
📖 第 1 页 / 共 2 页
字号:
                {
                    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;
	}
	return FALSE;	
}

void main(){
	char s[40],ch,mood;
	int result,t=1,t0=1,nall=0,nright=0,t1=1;
	double right;
	printf("/***************************************************/\n");
	printf("                 24点游戏   dos  版本1.0\n");
	printf("      北京工商大学微机024班 欧阳锦林(谷穗) 版权所有\n");
	printf("                 完成于2004年4月25日\n");
	printf("/***************************************************/\n");
	while(t==1){
		printf("你想采用什么模式?\n");
		printf("    **************************************************\n");
		printf("    *  计算机给出四个数字,你来算直到你想退出:'0'     *\n");  
		printf("    *自己给出四个数字,要计算机来算,直到想退出:'1'    *\n");
		printf("    *                            我想要源程序:'2'    *\n");
		printf("    *                          我现在就要退出:'3'    *\n");
		printf("    **************************************************\n");
		printf("请选择模式:");
		scanf( "  %c",&mood);
		if (mood=='0'){
			nall=0;
			nright=0;
			t0=1;
			while(t0==1){
				number[2][4]=randomm();
				printf("这四个数字是: %d   %d    %d   %d\n",number[0][0],number[0][1],number[0][2],number[0][3]);
				printf("请输入算式\n");
				printf("如果你认为这四个数算不出24点,请输入	?\n");
				printf("计算机将会给出答案,算不出也是一种答案!\n");
				printf("你的算式是:");
				scanf ("%s",s);
				if(s[0]=='?'){
					if (Calc24(number)==1){
						nall++;
					}
				}
				else {					
					result=EvaluateExpression(s);
					printf("你输入的算式的结果是: %d \n",result);
					if(result==24){
					printf("恭喜您,你算对了!\n");
					nright++;
					nall++;
                    }
					else {
						printf("对不起,你算错了,谢谢!\n");
						nall++;
					}
				}//else
				printf("你共做了%d道,做对了%d道\n",nall,nright);
				if (nall%5==0&&nall!=0){
					right=(double)nright/nall;
					printf("你的正确率为: %f\n",right);
					if (right<0.5){
						printf("训练尚未成功,同志仍须努力!\n");
					}
					else if(right>=0.5&&right<0.7){
						printf("不错不错,假以时日,必成良材!\n");
					}
					else if(right>=0.7&&right<0.8){
						printf("将遇良材,非大战三百回合不可!\n");
					}
					else if(right>=0.8&&right<0.96){
						printf("对你的敬佩之情,如滔滔江水,绵绵不绝---^^\n");
					}
					else {
						printf("如此才智,老夫自愧不如\n");
					}
				}
				printf("继续这个模式吗?请选择: 'y':继续	'n':退出?\n");
   				scanf(" %c",&ch);
				if(ch=='n'||ch=='N'){
					t0=0;			
				}
				else  if (ch=='Y'||ch=='y')   t0=1;
				else{
					printf("你的选择(输入)有误!\n"); 
					t0=0;
       			}
			}//while mood 0
		}//end if mood 0
		else if (mood=='1'){
			t1=1;
			while (t1==1){
				printf("请输入四个正整数1-13:(用逗号隔开) ");
				scanf("%d,%d,%d,%d",&number[0][0],&number[0][1],&number[0][2],&number[0][3]);
				Calc24(number);
				printf("继续这个模式吗?请选择: 'y':继续	'n':退出?\n");
   				scanf(" %c",&ch);
				if(ch=='n'||ch=='N'){
					t1=0;			
				}
				else  if (ch=='Y'||ch=='y')   t1=1;
				else{
					printf("你的选择(输入)有误!\n"); 
					t1=0;
			 	}
			}
		}//end mood 1
		else if (mood=='2'){
			printf("如果你需要源程序或想与我讨论有关问题,欢迎与我联系^^\n");
			printf("E-mail:ouyangj0@yahoo.com.cn  QQ:158487625  网名:谷穗\n");
		}
		else if (mood=='3'){
			printf("		再见!\n");
			t=0;
		}
		else {
			printf("mood =%c\n",mood);
			printf("你的选择(输入)有误!\n");
			t=0;
		}
	}//end big while 
	}




⌨️ 快捷键说明

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