共有回帖数 0 个
-
花了我好久好久的时间,若各位能找出错误,允许不回帖!
#include "stdio.h"
#include "math.h"
#include "time.h"
void main()
{
void first();
void second();
int third();
time_t t;
int close=0;
char get;
clrscr();
srand((unsigned) time(&t));
for(;;)
{
clrscr();
printf("24 POINTS SYSTEM v2.2n");
printf("MADE BY DANTE WANGn");
printf("Jul.28th 2006nn");
printf("Please choose mode!nn");
printf("1. Game Moden");
printf("2. Count Moden");
printf("3. Quitnn");
get=getch();
switch(get)
{
case '1': first(); break;
case '2': second();break;
case '3': close=third(); break;
default: printf("Please input 1, 2 or 3!n"); getch();
}
if(close)
break;
}
}
void first()
{
int jdgsgn(int a,int b,int c,int d);
int n[4],i;
char ch[100],ch1[100];
int check(char *p);
int exam2(char *p,int a,int b,int c,int d);
void sign(int a,int b,int c,int d);
double figure(char *p);
void draw(int *p);
for(;;)
{
for(i=0;i4;i++)
{
n=rand()%13+1;
}
draw(n);
if(!jdgsgn(n[0],n[1],n[2],n[3]))
{
printf("No answer!");
getch();
continue;
}
gets(ch);
if(!strcmp(strlwr(ch),"quit"))
break;
else
{
strcpy(ch1,ch);
if(!check(ch)&&!exam2(ch,n[0],n[1],n[2],n[3])&&fabs(figure(ch1)-24)=0.000001)
{
printf("nGood job!n");
getch();
}
else
{
printf("nWrong!nnAnswer: ");
sign(n[0],n[1],n[2],n[3]);
getch();
}
}
}
}
void second()
{
int n[4],i;
char c[4][10];
int exam(char *p);
void sign(int a,int b,int c,int d);
double recog(char *p);
clrscr();
printf("Input 0 to leave.nn");
for(;;)
{
for(i=0;i4;i++)
{
scanf("%s",&c);
if(exam(c))
{
printf("GRAMMER ERROR!n");
i--;
continue;
}
n=(int)recog(c);
if(n==0)
break;
}
if(n[0]&&n[1]&&n[2]&&n[3])
sign(n[0],n[1],n[2],n[3]);
else
break;
}
}
int third()
{
printf("Thanks for using this software!nn");
printf("If you have any advices or suggestions,nn");
printf("welcome to send email to wyc890618@163.com.nn");
getch();
return(1);
}
void sign(int a,int b,int c,int d)
{
char *change(int x);
double figure(char *p);
int i[4],n,n1,n2,n3,n4,s1,s2,s3,t,flag=0;
char s[4][2]={"+","-","*","/"},p[64]={0},p1[64]={0};
i[0]=a;
i[1]=b;
i[2]=c;
i[3]=d;
for(n1=0;n14;n1++)
{
for(n2=0;n24;n2++)
{
if(n2==n1)
continue;
for(n3=0;n34;n3++)
{
if(n3==n2||n3==n1)
continue;
for(n4=0;n44;n4++)
{
if(n4==n3||n4==n2||n4==n1)
continue;
for(s1=0;s14;s1++)
{
for(s2=0;s24;s2++)
{
for(s3=0;s34;s3++)
{
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,change(i[n2]));
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
printf("%sn",p);
flag++;
break;
}
*p=' ';
if(s1/2==1&&(s2/2==0||s3/2==0))
{
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,"(");
strcat(p,change(i[n2]));
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcat(p,")");
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
printf("%sn",p);
flag++;
break;
}
*p=' ';
}
if(s1/2==0&&s2/2==1)
{
strcat(p,"(");
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,change(i[n2]));
strcat(p,")");
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
printf("%sn",p);
flag++;
break;
}
*p=' ';
}
if(s2/2==0&&s1/2==1)
{
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,"(");
strcat(p,change(i[n2]));
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,")");
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
printf("%sn",p);
flag++;
break;
}
*p=' ';
}
if((s1/2==0||s2/2==0)&&s3/2==1)
{
strcat(p,"(");
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,change(i[n2]));
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,")");
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
printf("%sn",p);
flag++;
break;
}
*p=' ';
}
if(s1/2==0&&s2/2==1&&s3/2==0)
{
strcat(p,"(");
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,change(i[n2]));
strcat(p,")");
strcat(p,s[s2]);
strcat(p,"(");
strcat(p,change(i[n3]));
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcat(p,")");
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
printf("%sn",p);
flag++;
break;
}
*p=' ';
}
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
if(flag==0)
printf("No answer!n");
}
char *change(int x)
{
static char a[64];
char *c;
c=a+63;
*c=' ';
c--;
for(;;c--)
{
if(x=10)
{
*c=x%10+'1'-1;
x=x/10;
}
else
{
*c=x+'1'-1;
break;
}
}
return©;
}
double figure(char *p)
{
int judge(char *p);
int judge2(char *p);
void add(char *p);
void pick(char *p);
double recog(char *p);
char *c=p,*c1,c2[64];
int sign,kuoh=0,flag2=0;
double result,chu;
add(p);
for(sign=0;*c!=' ';c++)
{
if(*c=='+'||*c=='-'||*c=='*'||*c=='/'||*c=='('||*c==')')
{
sign++;
break;
}
}
if(sign==0)
return(recog(p));
else
{
c=p;
for(;*c!=' ';c++)
{
if(*c=='(')
kuoh++;
if(*c==')')
kuoh--;
if(!judge2©)
{
if(*c=='+'&&kuoh==0)
{
*c=' ';
result=figure(p)+figure(c+1);
flag2++;
break;
}
if(*c=='-'&&kuoh==0)
{
*c=' ';
result=figure(p)-figure(c+1);
flag2++;
break;
}
}
if(!judge©)
{
if(*c=='*'&&kuoh==0)
{
*c=' ';
result=figure(p)*figure(c+1);
flag2++;
break;
}
if(*c=='/'&&kuoh==0)
{
*c=' ';
chu=figure(c+1);
if(chu==0)
{
result=99999;
}
else
{
result=figure(p)/chu;
}
flag2++;
break;
}
}
}
if(flag2)
return(result+0);
else
{
pick(p);
result=figure(p);
return(result+0);
}
}
}
int judge(char *p)
{
char *c=p;
int kuoh=0,flag=0;
for(c++;*c!=' ';c++)
{
if(*c=='(')
kuoh++;
if(*c==')')
kuoh--;
if(kuoh==0&&(*c=='+'||*c=='-'||*c=='*'||*c=='/'))
{
flag++;
break;
}
}
return(flag);
}
int judge2(char *p)
{
char *c=p;
int kuoh=0,flag=0;
for(c++;*c!=' ';c++)
{
if(*c=='(')
kuoh++;
if(*c==')')
kuoh--;
if(kuoh==0&&(*c=='+'||*c=='-'))
{
flag++;
break;
}
}
return(flag);
}
void add(char *p)
{
char *c=p,b[64];
int flag=0;
for(;*c!=' ';c++)
{
if((*c=='-'||*c=='+')&&(*(c+1)='0'&&*(c+1)='9'))
flag++;
if((*c='0'&&*c='9'||*c=='.')&&(*(c+1)=='*'||*(c+1)=='/'||*(c+1)=='+'||*(c+1)=='-'))
{
flag++;
break;
}
if((*c='0'&&*c='9'||*c=='.')&&*(c+1)==')')
{
break;
}
}
if(flag==2)
flag=1;
else
flag=0;
if(flag)
{
c=p;
for(;*c!=' ';c++)
{
if(*(c+1)='0'&&*(c+1)='9')
{
if(*c=='+'||*c=='-')
{
strcpy(b,c);
*c='(';
strcpy(c+1,b);
}
break;
}
}
c+=2;
for(;*c!=' ';c++)
{
if((*c'0'||*c'9')&&*c!='.')
{
strcpy(b,c);
*c=')';
strcpy(c+1,b);
break;
}
}
}
}
void pick(char *p)
{
char *c=p;
if(*c=='('&&*(c+strlen©-1)==')')
{
strcpy(c,c+1);
*(c+strlen©-1)=' ';
}
}
double recog(char *p)
{
char *c=p;
int flag=0,number;
double quan,ans=0;
for(;;c++)
{
if(*c=='.')
{
flag++;
number=c-p;
}
if(*c!='.'&&(*c'0'||*c'9'))
break;
}
if(flag==0)
{
for(quan=1,c--;c=p;c--,quan*=10)
ans+=(*c-'1'+1)*quan;
}
else
{
for(c--,quan=pow(10,number-(c-p));c=p;c--)
{
if(*c=='.')
continue;
else
{
ans+=(*c-'1'+1)*quan;
quan*=10;
}
}
}
return(ans);
}
int exam(char *p)
{
double recog(char *p);
char *c=p;
int number=0;
for(;*c!=' ';c++)
{
if(*c'9'||*c'0')
number++;
if(number)
break;
}
if(!number)
{
if(recog(p)13||recog(p)0)
number++;
}
return(number);
}
void draw(int *p)
{
time_t t;
int n;
clrscr();
printf("Press "quit" to leave.");
srand((unsigned) time(&t));
for(n=0;n4;n++)
{
gotoxy(1+7*n,3);
printf("xdaxc4xc4xc4xc4xbf");
gotoxy(1+7*n,4);
printf("xb3%c xb3",rand()%4+3);
gotoxy(1+7*n,5);
printf("xb3 xb3");
gotoxy(1+7*n,6);
switch(*(p+n))
{
case 1:
printf("xb3 Axb3");
break;
case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:
printf("xb3%4dxb3",*(p+n));
break;
case 11:
printf("xb3 Jxb3");
break;
case 12:
printf("xb3 Qxb3");
break;
case 13:
printf("xb3 Kxb3");
}
gotoxy(1+7*n,7);
printf("xc0xc4xc4xc4xc4xd9");
gotoxy(1,9);
}
}
int jdgsgn(int a,int b,int c,int d)
{
char *change(int x);
double figure(char *p);
int i[4],n,n1,n2,n3,n4,s1,s2,s3,t,flag=0;
char s[4][2]={"+","-","*","/"},p[64]={0},p1[64]={0};
i[0]=a;
i[1]=b;
i[2]=c;
i[3]=d;
for(n1=0;n14;n1++)
{
for(n2=0;n24;n2++)
{
if(n2==n1)
continue;
for(n3=0;n34;n3++)
{
if(n3==n2||n3==n1)
continue;
for(n4=0;n44;n4++)
{
if(n4==n3||n4==n2||n4==n1)
continue;
for(s1=0;s14;s1++)
{
for(s2=0;s24;s2++)
{
for(s3=0;s34;s3++)
{
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,change(i[n2]));
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
flag++;
break;
}
*p=' ';
if(s1/2==1&&(s2/2==0||s3/2==0))
{
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,"(");
strcat(p,change(i[n2]));
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcat(p,")");
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
flag++;
break;
}
*p=' ';
}
if(s1/2==0&&s2/2==1)
{
strcat(p,"(");
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,change(i[n2]));
strcat(p,")");
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
flag++;
break;
}
*p=' ';
}
if(s2/2==0&&s1/2==1)
{
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,"(");
strcat(p,change(i[n2]));
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,")");
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
flag++;
break;
}
*p=' ';
}
if((s1/2==0||s2/2==0)&&s3/2==1)
{
strcat(p,"(");
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,change(i[n2]));
strcat(p,s[s2]);
strcat(p,change(i[n3]));
strcat(p,")");
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
flag++;
break;
}
*p=' ';
}
if(s1/2==0&&s2/2==1&&s3/2==0)
{
strcat(p,"(");
strcat(p,change(i[n1]));
strcat(p,s[s1]);
strcat(p,change(i[n2]));
strcat(p,")");
strcat(p,s[s2]);
strcat(p,"(");
strcat(p,change(i[n3]));
strcat(p,s[s3]);
strcat(p,change(i[n4]));
strcat(p,")");
strcpy(p1,p);
if(fabs(figure(p1)-24)=0.000001)
{
flag++;
break;
}
*p=' ';
}
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
if(flag)
break;
}
return(flag);
}
int exam2(char *p,int a,int b,int c,int d)
{
double recog(char *p);
int number=0,num[4],flag=0,n,m;
num[0]=a;
num[1]=b;
num[2]=c;
num[3]=d;
for(m=0;*p!=' ';p++,m++)
{
if(*p='0'&&*p='9'&&(*(p+1)'9'||*(p+1)'0'))
number++;
if(m0&&*p='0'&&*p='9'&&*(p-1)='0'&&*(p-1)='9')
continue;
if(*p='9'&&*p='0')
{
if(recog(p)13||recog(p)1)
{
flag++;
break;
}
else
{
for(n=0;n4;n++)
{
if(recog(p)==num[n])
{
num[n]=0;
break;
}
}
}
}
}
if(!flag)
{
if(number!=4)
flag++;
else
if(num[1]||num[2]||num[3]||num[0])
flag++;
}
return(flag);
}
int check(char *p)
{
int kuoh=0,flag=0;
for(;*p!=' ';p++)
{
if(*p==' ')
{
flag++;
break;
}
if(kuoh0)
{
flag++;
break;
}
if(*p=='(')
kuoh++;
if(*p==')')
kuoh--;
if((*p=='+'||*p=='-'||*p=='*'||*p=='/')&&(*(p+1)=='*'||*(p+1)=='/'||*(p+1)=='+'||*(p+1)=='-'))
{
flag++;
break;
}
if(*p=='('&&(*(p+1)'9'||*(p+1)'0'&&*(p+1)!='-'))
{
flag++;
break;
}
if(*p==')'&&*(p+1)!='+'&&*(p+1)!='-'&&*(p+1)!='*'&&*(p+1)!='/'&&*(p+1)!=' ')
{
flag++;
break;
}
}
if(!flag)
{
if(kuoh!=0)
flag++;
}
return(flag);
}
由于百度会将特定的字符组进行转换,比如,自动将“(c)”转换为©,请大家自行改正。
可利用记事本替换功能。
给大家带来的不便,请多包涵~~~��
楼主 2016-03-03 17:14 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知