用c語言設定計算器,能執行加減乘除。而且執行的時候不能有任何錯誤

時間 2021-10-17 02:37:57

1樓:匿名使用者

最近自己做的,可以進行乘除優先,括號優先的運算

#include

#include

#include

#include

void bracket(char *a);/*處理含有括號的式子,將括號部分計算後值放回原陣列*/

int digit(double a);/*計算一個浮點型數整數部分的位數*/

int partlength;/*存放括號處字串的長度*/

void pick(double a,char *ch);/*將浮點數a存入陣列ch中(不包括小數點)*/

double part_take1(char a,int b,int c);/*取出陣列a下標b到c的字元所組成的數*/

double multiply(char h);/*對陣列h中存放的式子進行乘除運算*/

void part_take2(char d,char *e,int f,int g);/*取出陣列d下標f到g的字元並存入陣列e中*/

double sum(char express);/*對陣列express中字元組成的表示式進行運算*/

int main(void)

return 0;

}double sum(char express)/*對陣列express中字元組成的表示式進行運算*/

if(express[k]=='+'&&k>0)

if(express[k]=='-'&&k>0)

ch2[0]='\0';

k=i;}}

part_take2(express,ch2,k+1,length-1);

part1=multiply(ch2);

if(k==-1||express[k]=='+')

else

return(result);

}double part_take1(char a,int b,int c)

result=atof(ch1);

return(result);

}double multiply(char h)

if(h[k]=='/'&&k>0)

k=i;}}

num=part_take1(h,k+1,s-1);

if(h[k]=='*'||k==-1)

else

return(part);

}void part_take2(char d,char *e,int f,int g)

e[j]='\0';

}void bracket(char *a)

if(a[i]==')')

a[k-1]='.';

while(j<=partlength-count+1)}}

}void pick(double a,char *ch)

ch[k]='\0';

}int digit(double a)

return(i);}

2樓:軍飛雙

#include

#include

#include

#define maxsize 100

typedef struct

stack;

int table = ;//查詢運算子優先順序表

void infix_to_suffix(stack *sta, char *infix, int *suffix, int *length);

//將字尾表示式轉換為結果直接返回

int suffix_to_result(stack *sta, int *suffix, int length);

void init(stack *sta);

int main()

void infix_to_suffix(stack *sta, char *infix, int *suffix, int *length)

suffix[j] = b;

j++;

continue;

} if (infix[i] == 41)

sta->data[sta->top] = 0;

sta->top--;

priority = table[sta->data[sta->top] % 10];

i++;

continue;

} if (infix[i] == 40)

if (infix[i] >= 42 && infix[i] <= 47)

sta->top++;

sta->data[sta->top] = infix[i];

priority = table[sta->data[sta->top] % 10];

i++;

} else

suffix[j] = b * -1;

sta->data[sta->top] = 0;

sta->top--;

j++;

i += 2;

priority = table[sta->data[sta->top] % 10];

continue;

} sta->top++;

sta->data[sta->top] = infix[i];

priority = table[sta->data[sta->top] % 10];

i++;

} }} while (sta->top != -1)

*length = j;

} int suffix_to_result(stack *sta, int *suffix, int length) }

return result;

} //初始化棧空間

void init(stack *sta)

sta->top = -1;}

用c語言怎樣實現計算器加減乘除功能?

3樓:匿名使用者

我學c++時寫的

#include

#include "string"

int    count(int a,int b,char c)void main()

; char sign[10];

int i,j=0,k=0,m;

int strlong=strlen(str);//#include "string"

cout<='0'&&str[i]<='9')number[j]=number[j]*10+str[i]-48;

else }

j++;

//cout<

2.堆疊

#include "string"

#include "iostream"

#include

#include

#include

using namespace std;

//自定義型別 用於儲存 兩種資料型別

class  newtype

data;

}; //將字串轉換為 數字陣列和字元陣列  (通用提取字串中數字)

這裡要使用引用

flag=false;

} else

}//for

return true;

} //計算沒有括號的表示式

計算四者表示式  無括號型別  1+2*3+4int ii=0;

//先計算乘除

while(iiall,float &value){

int pos=0;

vectornumbers;

vectorchars;

float va=0;

for(int i=0;inumbers;

vectorchars;

vectorall;

couvert(str, numbers, chars,all);

for(int i=0;i

這是我翻家底找到的 .

4樓:匿名使用者

#include

void main()

scanf("%d\n",&d);}

5樓:沐星辰曦

#include

void main()

6樓:sky思念很淺

#include

void main()}

7樓:

我有個vc++的 任意進位制轉換----棧的連結儲存/* 棧的連結儲存----任意進位制轉換*/#include

#include

typedef int elemtype;

struct snode ;

void initstack(snode*& hs)// 壓棧 插入元素

void push(snode*& hs, const elemtype& item)

//從棧中刪除一個元素並返回該元素

elemtype pop(snode*& hs)//讀取棧頂元素

elemtype peek(snode* hs)bool emptystack(snode* hs)void clearstack(snode*& hs)hs = null;

}void transform(long number, int r)

while(!emptystack(a))

8樓:匿名使用者

#include

int main()

if(b!=0) //如果除數不為0return 0;}

9樓:匿名使用者

#include

#include

int main()

printf("%f%c%f=%f",a,b,c,d);

return 0;}

用c語言編一個計算器程式,能夠實現基本的加減乘除,能夠輸出運算物件,運算子,運算結果。謝謝啦!

10樓:天雨下凡

#include

int main(void)

return 0;}

11樓:雲丶痕無跡

# include

int main(void)

*/switch (chose)}}

用c語言寫一個只有加減乘除的計算器,它可以多次輸入,直到使用者想結束再退出程式。

12樓:幻想祕境

#include //望採納!!!

int main (void)

case '-':

case '/':

case '*':

default:

}fflush(stdin,null);

printf("計算完畢!是否再次使用?y/n:");

scanf ("%c",&yn);

if (yn=='y' || yn=='y')printf("感謝使用本計算器!本次服務到此結束!\n");

break;

}while (1);}

13樓:匿名使用者

#include

#include

int main(void)

else

break;

default:printf("unknown operator!\n");

}printf("do you want to continue(y/n or y/n?)");

scanf(" %c",&reply);//%c前有一空格}while(reply=='y'||reply=='y');

printf("program is over!\n");

return 0;

}注意一定要有空格,否則程式無法正常執行

用c語言寫可以加減乘除的計算器,可迴圈的

李小宇 學了十天寫出的第一個小作品 include int main else if c else if c else if c else else return 0 首先,scanf f c f a t b 這句有錯,缺逗號。應改為scanf f c f a,t,b 其次,if get 這句有錯。...

用c語言編寫簡單計算器程式,用c語言編寫一個簡單計算器程式

問明 include stdio h 計算器 voidmenu 自定義的選單介面 printf n printf 請輸入你的選擇 n printf 1 n printf 2 n printf 3 n printf 4 n printf n intmain inti 0 intj 0 intnum 0...

C語言中如何實現計算器功能,c語言如何建立一個按鈕?做計算器用

如果你的表示式不超過一級括號,可以不使用棧.如你的例題,但象這樣不用棧很煩 3 4 3 2 6 3 如只有一級,沒人寫,就加我.include using namespace std bool cal double lv,char op,double rv,double val return tru...