c语言计算24游戏,C语言实现加减乘除24游戏

#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。

2

");

printf("MADE BY DANTE WANG

");

printf("Jul。28th 2006

");

printf("Please choose mode!

");

printf("1。

Game Mode

");

printf("2。 Count Mode

");

printf("3。 Quit

");

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!

"); 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;i<4;i )

{

n[i]=rand() 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("

Good job!

");

getch();

}

else

{

printf("

Wrong!

Answer: ");

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。

");

for(;;)

{

for(i=0;i<4;i )

{

scanf("%s",&c[i]);

if(exam(c[i]))

{

printf("GRAMMER ERROR!

");

i--;

continue;

}

n[i]=(int)recog(c[i]);

if(n[i]==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!

");

printf("If you have any advices or suggestions,

");

printf("welcome to send email to wyc890618@163。

com。

");

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;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]));。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言中,可以使用结构体来表示复数,并实现加减乘除运算。首先,我们可以定义一个结构体来表示复数,包括实部和虚部。例如: ```c typedef struct { double real; double imag; } Complex; ``` 接下来,我们可以实现复数的加减乘除运算。对于加法和减法,我们只需要将两个复数的实部和虚部分别相加减即可。对于乘法,根据公式(a+bi)(c+di)=ac-bd+(ad+bc)i,我们可以计算出乘积的实部和虚部。对于除法,根据公式(a+bi)/(c+di)=(ac+bd)/(cc+dd)+(bc-ad)/(cc+dd)i,我们可以计算出商的实部和虚部。 在实现过程中,需要注意输出格式,考虑虚部为复数和虚部为0的情况。可以使用switch语句由用户自己选择要进行的操作,并使用do...while循环实现多次运算。 参考资料: \[1\]思路: 1复数的表示:用结构体实现 2复数的加减法:实部虚部分别相加减 复数的乘法:(a+bi)(c+di)=ac-bd+(ad+cb)i 复数的除法:(a+bi)(c+di)=(ac+bd)(cc+dd)+(bc-ad)(cc+d*d) 考虑分母为0的情况 3注意输出格式,考虑虚部为复数和虚部为0的情况 4用switch语句由用户自己选择要进行的操作 5用do…while循环实现多次运算。 \[2\]这段代码用到了一个新的函数,就是 scanf。scanf 和 printf 的功能相反,printf 用来输出数据,scanf 用来读取数据。此处,scanf 会从控制台读取两个整数,并分别赋值给 a 和 b。关于 scanf 的具体用法,我们将在《C语言从键盘输入数据》一节中详细讲解,这里大家只要知道它的作用就可以了,不必求甚解。 \[3\]然而,编译器对这个错误一般无能为力,很多情况下,编译器在编译阶段根本无法计算出除数的值,不能进行有效预测,“除数为 0”这个错误只能等到程序运行后才能发现,而程序一旦在运行阶段出现任何错误,只能有一个结果,那就是崩溃,并被操作系统终止运行。 #### 引用[.reference_title] - *1* [复数的加减乘除C语言实现](https://blog.csdn.net/zf111212/article/details/120925457)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C语言加减乘除运算](https://blog.csdn.net/weixin_42502860/article/details/114040925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值