C语言实现加减乘除24游戏
答案:2 悬赏:30 手机版
解决时间 2021-02-18 17:58
- 提问者网友:孤凫
- 2021-02-17 20:05
编程要求:
(1)统计出求不出24的所有组合数目
(2)将每一种组合的计算结果写入文件result.txt,每两个组合占一行。
附上C语言代码。
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-17 20:59
int d);
double figure(char *p);
void draw(int *p);
default: printf("Please input 1;,&c[i]);stdio,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;n1<4;n1++)
{
for(n2=0;n2<4;n2++)
{
if(n2==n1)
continue;
for(n3=0;n3<4;n3++)
{
if(n3==n2||n3==n1)
continue;
for(n4=0;n4<4;n4++)
{
if(n4==n3||n4==n2||n4==n1)
continue;
for(s1=0;s1<4;s1++)
{
for(s2=0;s2<4;s2++)
{
for(s3=0;s3<4;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]));;n");
i--,ch);
}
}
void first()
{
int jdgsgn(int a,int b,int c,int d);). Quit\,n[3]))
{
printf("n");
printf("MADE BY DANTE WANG\3;
continue;;)
{
clrscr().2\,int c,n[1],n[2];i<4;i++)
{
scanf(",int b;)!strcmp(strlwr(ch);n");
printf("2. Count Mode\n",n[2],n[3])&&fabs(figure(ch1)-24)<,\n\n",i.h"
#include "math;24 POINTS SYSTEM v2;n\: close=third(); break,int c,int b!jdgsgn(n[0];n\Input 0 to leave.\,n[1],n[2],n[0],n[1]; getch();
}
if(close)
break.h"
#include "time;welcome to send email to wyc890618@163.com.\4;
}
if(n[0]&&n[1]&&n[2]&&n[3])
sign(n[0];No answer,int d);
double recog(char *p).h"
void main()
{
void first();
void second(),n[3]);
case '2';
printf(",int b: ");
sign(n[0];
}
draw(n);
if(;
int exam(char *p);
void sign(int a;
return(1);
}
void sign(int a;);break;nAnswer;
int third();
time_t t;
int close=0;
srand((unsigned) time(&t));n\
else
break;
if(!check(ch)&&!exam2(ch;n");
getch();n");
printf("1. Game Mode\,int a;n\,int b;
printf("
printf("=0.000001)
{
printf("
clrscr();
char ch[100];
if(exam(c[i]))
{
printf("GRAMMER ERROR!\
char get;quit";)
{
for(i=0;i<n\
getch();
continue;
}
gets(ch);
if(;n\
for(,n[3]);n");
printf("If you have any advices or suggestions;n");
printf("Jul.28th 2006\n\n"
for(,int c;Thanks for using this software!\
}
}
int third()
{
printf("!");
int n[4]: second(););
}
n[i]=(int)recog(c[i]);
if(n[i]==0)
break,ch1[100];
int check(char *p);
int exam2(char *p;
case '3',n[1],n[2];
printf("%s"n");
get=getch();Please choose mode!\)
{
for(i=0;n");
for(;;
printf("
switch(get)
{
case '1';
}
else
{
printf("\\nGood job!\n");
getch(),int d);
void sign(int a;
clrscr(): first(); break;
getch();
}
}
}
}
void second()
{
int n[4],i;
char c[4][10], 2 or 3,int c;nWrong!\!\n"i++)
{
n[i]=rand()%13+1;))
break;
else
{
strcpy(ch1,"#include "
double figure(char *p);
void draw(int *p);
default: printf("Please input 1;,&c[i]);stdio,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;n1<4;n1++)
{
for(n2=0;n2<4;n2++)
{
if(n2==n1)
continue;
for(n3=0;n3<4;n3++)
{
if(n3==n2||n3==n1)
continue;
for(n4=0;n4<4;n4++)
{
if(n4==n3||n4==n2||n4==n1)
continue;
for(s1=0;s1<4;s1++)
{
for(s2=0;s2<4;s2++)
{
for(s3=0;s3<4;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]));;n");
i--,ch);
}
}
void first()
{
int jdgsgn(int a,int b,int c,int d);). Quit\,n[3]))
{
printf("n");
printf("MADE BY DANTE WANG\3;
continue;;)
{
clrscr().2\,int c,n[1],n[2];i<4;i++)
{
scanf(",int b;)!strcmp(strlwr(ch);n");
printf("2. Count Mode\n",n[2],n[3])&&fabs(figure(ch1)-24)<,\n\n",i.h"
#include "math;24 POINTS SYSTEM v2;n\: close=third(); break,int c,int b!jdgsgn(n[0];n\Input 0 to leave.\,n[1],n[2],n[0],n[1]; getch();
}
if(close)
break.h"
#include "time;welcome to send email to wyc890618@163.com.\4;
}
if(n[0]&&n[1]&&n[2]&&n[3])
sign(n[0];No answer,int d);
double recog(char *p).h"
void main()
{
void first();
void second(),n[3]);
case '2';
printf(",int b: ");
sign(n[0];
}
draw(n);
if(;
int exam(char *p);
void sign(int a;
return(1);
}
void sign(int a;);break;nAnswer;
int third();
time_t t;
int close=0;
srand((unsigned) time(&t));n\
else
break;
if(!check(ch)&&!exam2(ch;n");
getch();n");
printf("1. Game Mode\,int a;n\,int b;
printf("
printf("=0.000001)
{
printf("
clrscr();
char ch[100];
if(exam(c[i]))
{
printf("GRAMMER ERROR!\
char get;quit";)
{
for(i=0;i<n\
getch();
continue;
}
gets(ch);
if(;n\
for(,n[3]);n");
printf("If you have any advices or suggestions;n");
printf("Jul.28th 2006\n\n"
for(,int c;Thanks for using this software!\
}
}
int third()
{
printf("!");
int n[4]: second(););
}
n[i]=(int)recog(c[i]);
if(n[i]==0)
break,ch1[100];
int check(char *p);
int exam2(char *p;
case '3',n[1],n[2];
printf("%s"n");
get=getch();Please choose mode!\)
{
for(i=0;n");
for(;;
printf("
switch(get)
{
case '1';
}
else
{
printf("\\nGood job!\n");
getch(),int d);
void sign(int a;
clrscr(): first(); break;
getch();
}
}
}
}
void second()
{
int n[4],i;
char c[4][10], 2 or 3,int c;nWrong!\!\n"i++)
{
n[i]=rand()%13+1;))
break;
else
{
strcpy(ch1,"#include "
全部回答
- 1楼网友:逃夭
- 2021-02-17 21:12
按照你的程序运行后。。。在输入c值的时候
程序直接结束了。。。还有就是每个case语句后记着加上break跳出不过也有不过根据具体需要也可以不加break;但是你的这个程序需要加上break;
原因是:回车符也是字符,所以你按回后,程序以为是输入了c的值了,而在输入b值成功是因为
回车符不是数字形式的。
以下是我改过的程序,编译运行都很好的
#include
#include
void main()
{
float a,b;
char c;
printf("\n input a:");
scanf("%f",&a);
printf("\n input b:");
scanf("%f",&b);
//这种情况经常遇到。。。。输入完后回车被下一个scanf("%c",&c)捕获了。
//因为回车符也是字符,所以你按回车后,程序以为是输入了c的值了
//所以加上下面一行,把回车符取走就可以了。。。。
getchar();
printf("\n input c:");
scanf("%c",&c);
//printf("\n%c",c);
switch(c)
{
case '+': printf("a+b=%f",a+b);break;
case '-': printf("a-b=%f",a-b);break;
case '*': printf("a*b=%f",a*b);break;
case '/': printf("a/b=%f",a/b);break;
default: break;
}
//为了好看
printf("\n");
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯