Ⅰ 如何使用c語言實現四則運算,詳細思路很重要啊(越詳細越好~),可以木有代碼(急)
1.判斷四則運算字元串的括弧是否匹配,可以用以個棧來計算,開始棧是空,從頭遍歷所有字元,找到'(',壓棧,找到')'彈出一個元素,遍歷完成以後如果棧是空表示正常,非空,或則中間出現問題都表示括弧不正常。
2.分解四則運算中的所有元素,把所有分解的元素放在隊列中,遍歷整個字元串,有switch分支,如果是0-9的字元用一個字元串存儲並和前面的字元組合起來,如果是'+''-''*''/'就把前面存儲數字的字元串當成一個元素放進隊列,並把當前運演算法符當成一個元素也放進隊列,遍歷完成以後所有的數據和運算符都分開了,比如234+456,會分解成234,+,456三個元素。
3.然後分解隊列,用兩個棧,一個存放所有元素用A表示,一個存放運算符號用B表示(這個是臨時變數),從頭開始遍歷整個隊列,如果是數據就把數據壓到A棧。如果元素是運算符就分開處理,如果是'(''+''-''*''/'')'處理方法都不一樣,詳細說明太復雜,整體的思想就是把數據和運算符的順序排列好(上面的元素排列以後變成234,456,+;可以參考後序排列)。
4.計算:依次彈出A中的元素,如果是數據把數據壓在棧C中,如果是運算符,從C中彈出該運算符需要的數據,然後把計算結果再次壓進棧C,當A遍歷完以後,C頂元素就是計算結果。
整個大題思路:1.檢查,2.分解,3.中序排列,4.後序排列,5.計算
Ⅱ C語言編寫四則運算
請先給出明確答復:因為程序規定的是先輸入操作符,再輸入兩個操作數
解釋原因:請看下面部分的代碼
- 第一個scanf("%c",&oper);這一句要求輸入一個(注意是一個)字元格式的值,給oper;
如果你輸入一個數字、英文等等,假如你第一個輸入的是10,那oper就是1,而不是10,因為%c一次只能讀取一個字元;
接下來,輸入第二第三個,程序再往下就會拿oper判斷,如果oper等於-號,就會執行減法,如果等於+號就會執行加法;
所以你輸入的操作數是不會匹配任何運算符,就不能進行運算。
有無解決辦法:
調換語句順序:復制第一個printf那一行與第一個scanf那一行,注意這兩行printf在scanf的上面,把這兩句放到第二個scanf之後,第三個print之前。就能輸入 1 空格 + 空格 2 回車,這種的
Ⅲ 用C語言編程實現一個簡單的四則運算計算器
#include <stdio.h>
//函數,讀數操作數
int getNextNum()
{
int ret;
scanf("%d",&ret);
return ret;
}
//函數,讀運算符
char getOpt()
{
return getchar();
}
//函數,計算
int caculate(int op1 , int op2 ,char opt)
{
if(opt=='+')return op1+op2;
if(opt=='-')return op1-op2;
if(opt=='*')return op1*op2;
if(opt=='/')return op1/op2;
return 0;
}
int main()
{
int op1,op2;
char opt;
//計算結果放在第一個操作數
op1 = getNextNum();
while(1)
{
opt = getOpt();
if ( opt == '=' ) break;
op2 = getNextNum();
op1 = caculate(op1,op2,opt);
}
printf("%d\n",op1);
}
return 0;
}
Ⅳ 輸入兩個整數,進行加減乘除四則運算的c語言程序怎麼寫啊,拜託了~
代碼
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d ",a + b);
printf("%d ",a - b);
printf("%d ",a * b);
printf("%d ",a / b);
return 0;
}
運行截圖
分析
C語言中的加減乘除和數學中的加減乘除一樣,不同在於符號的表示問題,乘號需要用「*」表示。除號需要用「/」表示。新手學習C語言,很容易把除號和取余好混淆,強調一下,取余號是「%」,百分號就是取余的意思。因此在輸入兩個整數以後,按照數學方法就可以直接輸出結果,整數的輸入用scanf()函數。
Ⅳ 用c語言編寫四則運算,急呀!越簡單越好
用純粹的C語言實現,代碼如下:
#include<stdio.h>
intmain()
{
doublea,b;
scanf("%lf%lf",&a,&b);
printf("a+b=%lf,a-b=%lf,a*b=%lf",a+b,a-b,a*b);
if(b==0)
printf(",error! ");
else
printf(",a/b=%lf ",a/b);
return0;
}
Ⅵ C語言問題:設計一個簡單的菜單選擇程序,根據選擇可實現a與b的四則運算。
#include<stdio.h>
int main()
{
int a,b,c;
printf("\n請輸入第一個數:");
scanf("%d",&a);
printf("請輸入第二個數:");
scanf("%d",&b);
printf("\n\t1 加法運算\n\t2 減法運算\n\t3 乘法運算\n\t4 除法運算\n請選擇(1/2/3/4):");
scanf("%d",&c);
switch(c)
{
case 1:printf("\n您選擇的是加法運算:\n%d +%d =%d",a,b,a+b);
break;
case 2:printf("\n您選擇的是減法運算:\n%d -%d =%d",a,b,a-b);
break;
case 3:printf("\n您選擇的是乘法運算:\n%d *%d =%d",a,b,a*b);
break;
case 4:printf("\n您選擇的是除法運算:\n%d /%d =%d",a,b,a/b);
break;
default :
printf("\n輸入有誤!");
}
}
這個可以實現你的題目
當然還有要考慮的,比如當b=0,除法就會出錯。等等,可以自己改改
Ⅶ c語言編寫 編寫一個簡單的計算器,實現兩個整型數的四則運算。
#include<stdio.h>
int main()
{int a,b,c,err;
char op;
do
{scanf("%d%c%d",&a,&op,&b);
err=0;
if(a==0&&b==0)break;
if(op=='+')c=a+b;
if(op=='-')c=a-b;
if(op=='*')c=a*b;
if(op=='/')
if(b)c=a/b;else err=1;
if(op=='%')
if(b)c=a%b;else err=1;
if(err)printf("%d%c%d error! ",a,b,c);
else printf("%d%c%d=%d ",a,op,b,c);
}while(1);
return 0;
}