導航:首頁 > 源碼編譯 > 編譯原理執行簡單的加減運算

編譯原理執行簡單的加減運算

發布時間:2022-05-26 22:09:34

⑴ 用C語言編譯一個包含加減乘除四則運算的計算器,求思路

#include
#include
using
namespace
std;
int
main()
{
int
a,b;//a是輸出結果,b是臨時輸入數據
char
x;//x是標點符號輸入
cin>>a;//先輸入第一個數
while(1)//由於不知道運算式一共多長,所以用一個死循環不斷讀取
{
cin>>x;//輸入運算符
if(x.

⑵ c++簡單加減法計算器異常

#include<iostream>
usingnamespacestd;
intmain()
{
intb[100];
chara[100],c[100];
inti=0,j=0,k=0;

memset(b,0,sizeof(b));
memset(c,0,sizeof(c));

cin.get(a,100);
while(a[i]!='')
{
if(a[i]>='0'&&a[i]<='9')
b[j]=b[j]*10+a[i]-'0';
elseif(a[i]=='+')
{
c[k++]='+';
j++;
}
elseif(a[i]=='-')
{
c[k++]='-';
j++;
}
i++;
}

intsum=b[0];
for(i=1,j=0;i<=k;i++,j++)
{
switch(c[j])
{
case'+':sum+=b[i];break;
case'-':sum-=b[i];break;
}
}
cout<<sum<<endl;
return0;
}

代碼可以處理合法的表達式,更好的寫法可以參照《編譯原理》

⑶ 用C語言編譯實現將2個16位二進制定點整數補碼的加減運算及溢出判斷(包括單符號位、雙符號位。

用數組來做就是了,byte數組或bit數組,先將數模2運算得到各位的值,存入數組中,之後一個循環來做二進制加減法就成了,溢出的判斷也很簡單,根據兩個運算數的模與他們的符號,還有所進行的運算,用幾個if語句就解決了

⑷ 用C語言編譯簡單加減乘除計算器,如何要求同時出現小數和余數,就是一輸出行的結果是小數,一行輸出結果

int a,b;
int c;int d;
float e;
c=a%b;//余數部分
d=a/b;//整數部分
e=(float)a/(float)b;//小數

⑸ C語言怎麼進行加法計算給個簡單的程序來

#include"stdio.h"
voidmain()
{
inta,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("%d ",c);
getch();
}

⑹ 編一程序實現簡單的加減乘除四則運算,用戶從鍵盤輸入算數,即可輸出結果.

#include"stdlib.h" #include "stdio.h" void main() { enum operator {jia,jian,cheng,chu}; enum operator op1; float s,x,y; printf("input x,y:\n"); scanf("%f,%f",&x,&y); for(op1=jia;op1<=chu;op1++) { switch(op1) { case jia:s=x+y;printf("x+y=%f\n",s);break; case jian:s=x-y;printf("x-y=%f\n",s);break; case cheng:s=x*y;printf("x*y=%f\n",s);break; case chu:s=x/y;printf("x/y=%f\n",s);break; } } }

⑺ C語言實現加減乘除運算

按照你的程序運行後。。。在輸入c值的時候
程序直接結束了。。。還有就是每個case語句後記著加上break跳出不過也有不過根據具體需要也可以不加break;但是你的這個程序需要加上break;
原因是:回車符也是字元,所以你按回後,程序以為是輸入了c的值了,而在輸入b值成功是因為
回車符不是數字形式的。
以下是我改過的程序,編譯運行都很好的

#include <stdio.h>
#include <math.h>

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");
}

⑻ 編譯原理

編譯原理):利用編譯程序從源語言編寫的源程序產生目標程序的過程; 用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。

編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成

(8)編譯原理執行簡單的加減運算擴展閱讀:

編譯程序的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最後看是否構成一個符合要求的程序,按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程序是最終的一個語法單位。

編譯程序的語法規則可用上下文無關文法來刻畫。語法分析的方法分為兩種:自上而下分析法和自下而上分析法。自上而下就是從文法的開始符號出發,向下推導,推出句子。

而自下而上分析法採用的是移進歸約法,基本思想是:用一個寄存符號的先進後出棧,把輸入符號一個一個地移進棧里,當棧頂形成某個產生式的一個候選式時,即把棧頂的這一部分歸約成該產生式的左鄰符號。

⑼ c語言實現簡單的加減乘除

1、打開C-Free5.0新建一個空白頁面,然後將C語言的基礎格式寫完,注意格式縮進。如下圖所示。

⑽ 用c語言編一個簡單的加減乘除的計算器程序 不需要很復雜 只要能進行兩個數之間的運算就好了

intmain()

{

charexp[8];

printf("enterexp: ");

scanf("%s",exp);//輸入類似於1+12*5這樣的式子,一次一個

switch(exp[1]){

case'+':

printf("%d ",exp[0]-'0'+exp[2]-'0'); break;

case'-':

printf("%d ",exp[0]-exp[2]);break;

case'*':

printf("%d ",(exp[0]-'0')*(exp[2]-'0'));break;

case'/':

printf("%f ",(exp[0]-'0')*1.0/(exp[2]-'0')*1.0);//1.0是為了轉化成浮點數好得到小數結果

};

return0;

}

閱讀全文

與編譯原理執行簡單的加減運算相關的資料

熱點內容
java單擊事件 瀏覽:641
絕對尺寸編程法 瀏覽:265
伺服器共享文件夾中病毒 瀏覽:35
哪個app會員看綜藝最全 瀏覽:761
程序員朋友圈招聘 瀏覽:339
細細的小木棍怎麼做解壓玩具 瀏覽:36
不要惹程序員的視頻 瀏覽:995
碼高編程如何加盟 瀏覽:756
程序員好處有哪些 瀏覽:954
c語言編譯後的程序 瀏覽:11
公交卡單片機 瀏覽:744
減壓縮軟體下載 瀏覽:299
51單片機復位電路有哪兩種 瀏覽:923
et2008加密狗教程 瀏覽:965
安卓手機用什麼錄制高清視頻 瀏覽:749
cadim命令如何應用 瀏覽:949
免費ntp時鍾伺服器地址 瀏覽:685
域名如何與雲伺服器綁定 瀏覽:808
linuxjava環境搭建教程 瀏覽:128
單片機串口如何引起中斷 瀏覽:272