弱智问题!!!!!!!!!!!!
以下这程序是用来算24的,好象有些数据类型转换的问题,还望高手们解决。
我的头好痛ing.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//---------------------------------------------------------------------------
int k=0;
AnsiString way[4];
//---------------------------------------------------------------------------
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void do24 (int x,int y,int w)
{
switch (w)
{
case 1:k=x+y; way[w]="加"; break;
case 2:k=x-y; way[w]="减"; break;
case 3:k=x*y; way[w]="乘"; break;
case 4:
if (x%y==x/y)
{
k=x/y;
way[w]="除";
break;
}
else
{
break;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int num[4];
AnsiString e[4];
e[1]=Edit1->Text;
e[2]=Edit2->Text;
e[3]=Edit3->Text;
e[4]=Edit4->Text;
int ie[4];
for (int i=1;i<5;i++)
{
if (e[i]=="1")
{
ie[i]=1;
}
else
{
if (e[i]=="2")
{
ie[i]=2;
}
else
if (e[i]=="3")
{
ie[i]=3;
}
else
if (e[i]=="4")
{
ie[i]=4;
}
else
if (e[i]=="5")
{
ie[i]=5;
}
else
if (e[i]=="6")
{
ie[i]=6;
}
else
if (e[i]=="7")
{
ie[i]=7;
}
else
if (e[i]=="8")
{
ie[i]=8;
}
else
if (e[i]=="9")
{
ie[i]=9;
}
else
if (e[i]=="10")
{
ie[i]=10;
}
else
if (e[i]=="11")
{
ie[i]=11;
}
else
if (e[i]=="12")
{
ie[i]=12;
}
else
if (e[i]=="13")
{
ie[i]=13;
}
else
{
}
}
num[1]=ie[1];
num[2]=ie[2];
num[3]=ie[3];
num[4]=ie[4];
for (int a=1;a<5;a++)
{
for (int b=1;b<5;b++)
{
if (b==a)
{
}
else
for (int c=1;c<5;c++)
{
if (c==a || c==b)
{
}
else
for (int d=1;d<5;d++)
{
if (d==a || d==b || d==c)
{
}
else
for (int e=1;e<5;e++)
{do24(num[a],num[b],e);
for (int f=1;f<5;f++)
{do24(k,num[c],f);
for (int g=1;g<5;g++)
{
do24(k,num[d],g);
AnsiString A=num[a];
AnsiString B=num[b];
AnsiString C=num[c];
AnsiString D=num[d];
if (k==24)
{
Label1->Caption=A+way[e]+B+way[f]+C+way[g]+D;
return;
}
else{
k=0;
}
}
}
}
}
}
}
}
}
}
//---------------------------------------------------------------------------