C语言计算公式

Python012

C语言计算公式,第1张

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include<windows.h>

/*

        说明: 产生伤害结果可以有用户确定,公式也是可以自己写的,

        在这里我给你展示一下.

        (如果有其他问题,可以找群主C/C++ 8群 491994603)

*/

#define LL  100      //人物力量

#define SH  530      //人物伤害

int main()

{

    //构造伤害公式 ,S=力量*10+570  -->每点力量造成10点伤害

    int s        //产生伤害值

    

    //构造暴击因子  ,差生暴击原伤害的两倍

    srand((unsigned int)time(NULL))

    while(1)

    {

        int x=rand()%2

        s= LL *10+SH

        if(x==2)

            prinf("差生暴击伤害:%d",2*s)

        if(x==1)

            prinf("差生伤害:%d",s)

            Sleep(3000)

            

    }

    system("pause")

    return 0

}

#include<stdio.h>

typedef struct

{float a[30]

int top

}shuju

typedef struct

{char b[30]

int futop

}fuhao

void initstack(shuju *s)

{s->top=-1

}

void initstackk(fuhao *s)

{

s->futop=-1

}

int youxianji(char n) /*符号优先级比较*/

{

switch(n)

{case '#': return 0

case '+': return 1

case '-': return 1

case '*': return 2

case '/': return 2

}

}

int shujujinzhan(shuju *s,float x) /*数据进栈*/

{

if(s->top==29)

return (false)

s->top++

s->a[s->top]=x

return(true)

}

char fuhaojinzhan(fuhao *l,char y) /*运算符进栈*/

{

if (l->futop==29)

return (false)

l->futop++

y=l->b[l->futop]

return y

}

float shujuchuzhan(shuju *s,float *x) /*数据出栈*/

{

if(s->top==-1)

return (false)

else

{

*x=s->a[s->top]

s->top--

return *x

}

}

int fuhaochuzhan(fuhao *s,char *x) /*运算符出栈*/

{

if(s->futop==-1)

return (false)

else

{

*x=s->b[s->futop]

s->futop--

return(true)

}

}

float suzi(char i) /*数据组成*/

{ float z, j=0

z=(float)(i-'0')

j=j*10+z

return j

}

float jisuan(float a,char b,float c) /*计算*/

{ float s

switch(b)

{ case'+': s=float(a+b)break

case'-': s=float(a-b)break

case'*': s=float(a*b)break

case'/': s=float(a/b)break

}

return s

}

int pangduanyunsuanfu(char i) /*判断运算符还是数据*/

{

if (i=='+'||i=='-'||i=='*'||i=='/')

return 1

else

return 0

}

void main()

{ char strink[60],k

int i,n,m

int a=0,j

float z,s,h1,h2

shuju q

fuhao p

initstack(&q)

initstackk(&p)

fuhaojinzhan(&p,'#')/*#进栈做栈底元素*/

printf("请输入计算公式\n")

gets(strink)

for (i=0i<60i++)

{ if (strink[i]=='\0') /*判断字符串是否为空*/

break

else

{j=pangduanyunsuanfu(strink[i])/*判断是运算符还是数据*/

if (j==1)

{ a=i++

n=youxianji(strink[i])

m=youxianji(p.b[p.futop])

if (n-m>0) /*比较运算符的优先级*/

fuhaojinzhan(&p,strink[i])/*运算符进符号栈*/

else

{ k=fuhaochuzhan(&p,&k)

h1=shujuchuzhan(&q,&h1)

h2=shujuchuzhan(&q,&h2)

s=jisuan(h1,k,h2)/*出栈的两个元素与对应的运算符的计算*/

shujujinzhan(&q,s)/*将计算的值回进数据栈中*/

}

}

else

{

z=suzi(strink[i])/*对数据进行计算,*/

if (a!=i)

{ z=0

shujujinzhan(&q,z)} /*把得到相应的数据进栈*/

a=i++

}

}

}

printf("%d",q.a[0])/*输出数据栈的最后一个元素,就是公式对应的值*/

}

百度文库VIP已帮您省0元现在恢复最低仅需0.3元/天​

​立即续费​

c语言数学计算公式

#include<stdio.h>

typedef struct

{float a[30]

int top

}shuju

typedef struct

{char b[30]

int futop

}fuhao

void initstack(shuju *s)

第 1 页

{s->top=-1

}

void initstackk(fuhao *s)

{

s->futop=-1

}

int youxianji(char n) /*符号优先级比较*/

{

switch(n)

{case '#': return 0