當前位置:首頁 » 編程語言 » c語言括弧里括弧怎麼運算
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言括弧里括弧怎麼運算

發布時間: 2022-05-26 13:44:04

c語言中的括弧表達式

括弧表達式計算順序是從左到右,然後整個表達式返回的是最右邊表達式的值,如第一個表達式,先算最內層的括弧表達式的最左邊的值,再把其最右邊的值返回並賦值給b,所以b在此次運算之後變為3,之後b+2=5(但5隻是一個臨時值,b值還是3),之後15+b=18,並且這個值由於是最右的表達式會作為整個大括弧表達式的返回值,即b再一次被賦值為18,然後現計算b+=18得到36;
如此第二個就是-30吧,對了,賦值表達式是從右到左賦值的

㈡ C語言,計算器中的括弧怎麼做

用堆棧實現。將含有多重括弧的中綴表達式翻譯成後綴表達式,然後進行計算。步驟是:
從左到右依次檢查每個字元
1.如果該字元是數字,直接加入到輸出隊列中
2.如果該字元是左括弧(,將其加入堆棧
3.如果該字元是右括弧),開始出棧,將棧中元素依次加入到輸出隊列中,直到碰到左括弧'('。左括弧本身不加入隊列。如果棧中沒有左括弧,返回匹配錯誤。
4.如果該字元是非括弧運算符,將該字元的優先順序和棧頂元素作比較。如果優先順序高於棧頂元素則入棧,否則添加到輸出隊列中。
表達式全部檢查完畢後,將棧中所有剩餘元素加入到輸出隊列中。如果棧中含有括弧,返回匹配錯誤。
最後得到的輸出隊列就是後綴表達式。

㈢ C語言實現帶有括弧的四則運算

#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
char token[61]; /*存放表達式字元串的數組*/
int n=0;
void error(void) /*報告錯誤函數*/
{
printf("ERROR!\n");
exit(1);
}
void match(char expected) /*檢查字元匹配的函數*/
{
if(token[n]==expected)
token[++n]=getchar();
else error();
}
double term(void); /*計算乘除的函數*/
double factor(void); /*處理括弧和數字的函數*/
double exp(void) /*計算加減的函數*/
{
double temp=term();
while((token[n]=='+')||(token[n]=='-'))
switch(token[n])
{
case'+':match('+');
temp+=term();
break;
case'-':match('-');
temp-=term();
break;
}
return temp;
}
double term(void)
{
double div;
double temp=factor();
while((token[n]=='*')||(token[n]=='/'))
switch(token[n])
{
case'*':match('*');
temp*=factor();
break;
case'/':match('/');
div=factor();
if(div==0) /*處理除數為零的情況*/
{
printf("The divisor is zero!\n");
exit(1);
}
temp/=div;
break;
}
return temp;
}
double factor(void)
{
double temp;
char number[61];
int i=0;
if(token[n]=='(')
{
match('(');
temp=exp();
match(')');
}
else if(isdigit(token[n])||token[n]=='.')
{
while(isdigit(token[n])||token[n]=='.') /*將字元串轉換為浮點數*/
{
number[i++]=token[n++];
token[n]=getchar();
}
number[i]='\0';
temp=atof(number);
}
else error();
return temp;
}
main()
{
double result;
FILE *data=fopen("61590_4.dat","at");
if(data==NULL)
data=fopen("61590_4.dat","wt");
if(data==NULL)
return 0;
token[n]=getchar();
result=exp();
if(token[n]=='\n')
{
token[n]='\0';
printf("%s=%g\n",token,result);
fprintf(data,"%s=%g\n",token,result);
}
else error();
fclose(data);
return 0;
getch();
}

㈣ C語言中的括弧運算

理論上來說

增加括弧只會增加編譯的時間 並且對運行的時間是沒有差別的

也就是增加了把你從c/c++代碼變成exe的時間,但是不會影響exe運行的時間

而且 增加一兩個括弧 對於計算機編譯時間的影響是微乎其微的

計算機一秒計算數量以億算 怎麼會差這一個括弧呢

關於代碼運行效率 更應該注意的是演算法,而不是這些語句 那個才能從本質上提高程序運行效率

多行的代碼 運行效率就不一定比單行的要低

作為源代碼重要的一是演算法 二是可讀性 增加括弧和增加有必要的換行不但不會降低運行效率,反而會使代碼更加容易理解 減少歧義的產生

㈤ 用c語言編寫帶括弧的四則運算

#include<stdio.h> /*庫文件包含*/
#include<string.h> /*用於字元串操作*/
#include<stdlib.h> /*用於exit函數*/

/**************************************************************************
int check(char *c)
輸入參數:
char *c: 輸入的字元串
返回參數:
0:字元串中有不符合規定的字元
1: 字元串字元符合規定,沒有不符合規定的字元.
功能:
檢查字元串中有否除了 0-9, +,-,*,/,(,),之外的其他字元,
如果有,則返回0, 表示出現錯誤。
若沒有,則返回1,表式字元串符合規定。
**************************************************************************/
int check(char *c)
{
int k=0;
while(*c!='\0')
{
if((*c>='0' && *c<='9') || *c=='+' ||
*c=='-' || *c=='*' || *c=='/' ||
*c=='.' || *c=='(' || *c==')' )
{

㈥ c語言加括弧問題

大括弧{ }用於定義函數體,構成復合語句(語句塊)、聲明聯合(union)及結構體變數。也用於初始化數組、結構體等類型的變數。

中括弧[]用於指明數組下標;在聲明數組時,用於確定數組長度。

小括弧用於聲明函數參數列表,改變表達式運算的方向,向函數傳遞參數。除了上述這些作用外,小括弧也具有在代數運算中相同的作用,另外,在C語言中,代數運算時的中、大括弧都用小括弧代替。

㈦ 如何運用大一C語言基礎編寫簡單帶括弧的四則運算

利用堆棧將中綴表達式轉換為後綴表達式計算。簡單給你講一下演算法:
1.從中綴表達式中逐字元讀入操作數
2.若操作數為數字,直接輸出到後綴表達式隊列
3.若操作數為左括弧(,將其壓棧
4.若操作數為加減乘除運算符,將其與棧頂元素比較:
①操作數優先順序高於棧頂元素,則將操作數壓棧;
②操作數優先順序等於或低於棧頂元素,先將棧頂元素出棧,然後將操作數壓棧。
5.若操作數為右括弧),從棧頂元素開始出棧,直到遇到左括弧(為止,左括弧也出棧。若直到棧底仍然沒有發現左括弧,返回表達式匹配錯誤(說明右括弧過多)
6.表達式讀取完畢,開始將棧中所有剩餘元素出棧。若出棧過程中發現有左括弧,返回表達式匹配錯誤(說明左括弧過多)
除了左括弧以外,所有出棧的元素都進入到後綴表達式隊列中。
7.根據後綴表達式計算算式結果。

㈧ c語言加括弧問題

大括弧{ }用於定義函數體,構成復合語句(語句塊)、聲明聯合(union)及結構體變數。也用於初始化數組、結構體等類型的變數。
中括弧[]用於指明數組下標;在聲明數組時,用於確定數組長度。
小括弧用於聲明函數參數列表,改變表達式運算的方向,向函數傳遞參數。除了上述這些作用外,小括弧也具有在代數運算中相同的作用,另外,在C語言中,代數運算時的中、大括弧都用小括弧代替。