導航:首頁 > 編程語言 > c四則運算代碼

c四則運算代碼

發布時間:2025-09-09 12:39:10

Ⅰ c語言四則運算程序怎麼寫

c語言四則運算程序寫法如下:

四則運算是數學忠最基傑的運算之-信息括加減乘除四種運算。在計算機編程中四則運算也是最基本的運算之一,常用於演算法設計、數據處理等方面。本文將介紹如何使用C語言進行四則運算的編程。


加法運算

減法運算是四則運算中的另一種基本運算,基本形式為a-b,其中a和b為減數,-為減號,其結果為兩個減數的差在C語言中,減法運算可以使用「-」符號進行表示,例如:inta=20:intb= 10:intc=a-b;printf("a-b=%dn",c)。

上述代碼中,定義了兩個整型變數a和b,分別賦值為20和10,然後使用「」符號進行減法運算,將結果賦值給變數C,最後使用printf函數輸出結果。

乘法運算

乘法運算是四則運算中的另一種基本運算,其基本形式為a*b,其中a和b為乘數,為乘號,其結果為兩個乘數的積在C語言中,乘法運算可以使用「*」符號進行表示,例如:inta=10;intb= 20;intc=a*b;printf("a*b=%dn",c)。

Ⅱ 四則運算(C語言),

/*在TC2 和 VC6下都可以順利運行。
做了一個下午。一定要用我這個噢。
有簡單的輸入錯誤檢測。有完整的說明和
注釋*/

#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==')' )
{

}
else
{
printf("input error, there have the char not the math expression char!\n");
return 0;
}

if(*c=='(')
k++;
else if(*c==')')
k--;

c++;
}
if(k!=0)
{
printf("input error, there is not have correct bracket '()'!\n");
return 0;
}
return 1;
}

/**************************************************************************
void move(char *f, double *s,int p)

輸入參數:
char *f : 運算符數組
double *s: 數值數組
int p: 當前運算符數組位置。
返回參數:

功能:
將當前已經完成運算的運算符消去,同時將數值數組的位置調整以進行下一次運算。
傳入值p若為3
則當前符號的數組位置為3.
f[3]=f[3+1].......f[len-2]=f[len-1] f[len-1]='\0';
s[i]=s[i+1].......s[len-1]=s[len] 因為數值比運算符多一個。
***************************************************************************/

void move(char *f, double *s,int p)
{
int i=0,len=strlen(f);
for(i=p; i<len; i++) /*將已經運算過的符號,空出來的位置用後面的符號來填充,*/
{ /*即把乘和除號的位置用後面的加和減號填充*/
f[i]=f[i+1];
s[i]=s[i+1];
}
s[i]=s[i+1];
f[len-1]='\0';
}
/**************************************************************************
double convnum(char *c)
輸入參數:
char *c :由數字和小數點組成的字元,用以轉換成double型的數值。
返回參數:
num:返回轉換好的值。
功能:
將輸入的字元串先將其小數點以前的部分復制到temp[]數組中,
若有小數點,則將小數點之後的數值,也就是小數部分先進行計算,值存入num中
計算完成後,再對整數部分進行計算,值加上小數部分的值,存入num中。
***************************************************************************/
double convnum(char *c)
{
double num=0.0;
double a=1.0;
int i=0,p=0,len=0;
char temp[100];
int tempi=0;
int start=0;
int f=1; /*正負符號指示器,若為1則為正數,為-1,此數為負數*/

len=strlen&;;

if(c[0]=='-')
{
start=1;
f=-1;
}
for(i=start; i<len; i++)
{
if(c[i]=='.')
{
p=i;
break;
}
temp[tempi++]=c[i]; /*將整數部分復制到temp[]中*/
}
temp[tempi]='\0';

if(p!=0)
{
for(i=p+1;i<len;i++) /*將小數部分計算出來*/
{
if(c[i]=='.') /*如果有多餘的小數點,則表示輸入錯誤*/
{
printf("there is more that one dot '.' in number!error!\n");
exit(0);
}
a=a*0.1;
num+=(a*(c[i]-48));
}
}

a=1.0;

len=strlen(temp); /*計算整數部分*/
for(i=len-1;i>=0; i--)
{
num=num+(a*(temp[i]-48));
a*=10;
}

num=num*f;
return num;
}

/**************************************************************************
double good(char *c)
輸入參數:
char *c :即將進行運算的字元串型數學表達式。如3.5+(2*3/5)
返回參數:
s[0]:計算結果將放入s[0]中
功能:
將輸入的字元串中的數字分別調用convnum(char *c)函數進行數值變換,再將其依
次存入doulbe s[i]中,將加減乘除運算符依次存入字元串符號數組 char f[i]中,
然後如果遇到括弧,則將括弧內的字元串存入另一字元數組中,然後用此
good(char *c) 遞歸函數進行遞歸運算。 然後根據先乘除,後加減的順序對已
存入數組的數值根 據存入字元串符號數組的運算符進行運算。結果存入s[0]中。
返回最終結果。
***************************************************************************/
double good(char *c) /*可遞歸函數*/
{ /*取得數值字元串,並調用convnum轉換成double*/
char g[100],number[30]; /*g,保存當前的表達式串,number保存一個數的所有字元*/
char f[80]; /*保存所有的符號的堆棧*/
int fi=0; /*保存符號的位置指針*/
double s[80]; /*保存當前所有的數的一個堆棧*/
int si=0; /*保存數字位置指針*/
int k=0; /* 若k=1則表示有一對括弧*/
int num=0,i=0; /*num保存新括弧內的字元數,i 保存number里的字元位置*/
int cc=0; /*乘除符號數量*/
int jj=0; /*加減符號數量*/

while(*c!='\0')/*當p==1 和k==0時,表示已經把括弧里的內容全部復制到g[100]中了*/
{
k=0;
num=0;

switch(*c)
{
case '+': /*當前字元為+-乘除時則表示*/
case '-':
case '*':
case'/':
f[fi++]=*c;
if(*c=='*' || *c=='/')
cc++;
else
jj++;
if(*(c-1)!=')')
{
number[i]='\0';
i=0;/*完成一個數字的復制,其位置指針i=0*/

s[si++]=convnum(number);
}
break;
case'(': /*有括弧,則將當前括弧作用范圍內的全部字元保存,作為*/
k++; /*一個新的字元表達式進行遞歸調用good函數計算。*/
while(k>0)
{
c++;
g[num]=*c;
num++;
if(*c==')')
{
k--;
}
else if(*c=='(')
{
k++;
}
}
g[num-1]='\0';
num=0;/*完成一個括弧內容的復制,其位置指針num=0*/
s[si++]=good(g);
break;
default:
number[i++]=*c;

if(*(c+1)=='\0')
{ number[i]='\0';
s[si++]=convnum(number);
}
break;
}

c++;
}

f[fi]='\0';

i=0;
while(cc>0)
{
switch(f[i])
{
case '*': cc--;
s[i+1]=s[i]*s[i+1];
move(f,s,i);
break;
case '/': cc--;
s[i+1]=s[i]/(float)s[i+1];
move(f,s,i);
break;
default:
i++;
break;
}
}

i=0;
while(jj>0)
{
switch(f[i])
{
case '+': s[i+1]=s[i]+s[i+1];
jj--;
move(f,s,i);
break;
case '-': s[i+1]=s[i]-s[i+1];
jj--;
move(f,s,i);
break;
default:
printf("operator error!");
break;
}
}

return s[0];
}

void main()
{
char str[100];
double sum=0;
int p=1;

while(1)
{
printf("enter expression: enter 'exit' end of program\n");
scanf("%s",str);
p=strcmp(str,"exit");
if(p==0)
break;
p=check(str);

if(p==0)
continue;
sum=good(str);
printf("%s=%f",str,sum);
printf("\n");
}
printf("good bye!\n");
}

例:
enter expression: enter 'exit' end of program
3.5+(12.3*15+8-(3/2+1))*2+(3.2*3-5)/6(輸入)
3.5+(12.3*15+8-(3/2+1))*2+(3.2*3-5)/6=384.266667
enter expression: enter 'exit' end of program
china(輸入)
input error, there have the char not the math expression char!
enter expression: enter 'exit' end of program
exit(輸入)
good bye!

Ⅲ C語言怎麼實現任意兩個數的四則運算

C語言實現任意兩個數的四則運算的方法:

1、閱讀代碼,使用了隨機函數:srand(unsigned( time(NULL)));通過調用隨機函數,將生成的100以內的隨機整數賦給不同的變數,一部分用於四則運算式數據的來源,而賦給變數c的隨機數則用於結合switch語句控製程序跳轉執行 不同的分支,即不同的四則運算,如下:

c = rand() % 5; //隨機產生小於5的非負整數

switch (c)

case 0:

case 1:

...........

case 5:

2、使用while語句控制除數不為0

while (b == 0)

{

b = rand() % 1; //若b=0則重新生成b,直到b不為0

}

3、使用if語句判斷減數與被減數的大小。

if (a > b) //使a<b

{

d = a;

a = b;

b = d;

}

if (m > n) //使m<n

{

d = m;

m = n;

n = d;

}

通過if判斷並賦值的手段保證結果不出現負數

4、 原代碼僅能一次性生成20個隨機的四則運算式,而無法從鍵盤輸入結果並判斷答案正確與否。

5、修改代碼。由於原代碼無法從鍵盤讀入數據,所以對其進行了改進。

(1)增加鍵盤讀入功能

scanf("%d",&x);

從鍵盤讀入輸入的答案

(2)對答案進行正確與否的判斷

if(x == (a+b))

printf("You are right! ");

else

printf("You are wrong! ");

通過比較輸入答案與運算得出的答案告知用戶計算是否正確。

6、上傳源代碼至GitHub。

Ⅳ C語言怎麼實現四則運算

樓上在扯淡!
你要使用字元串匹配,用swich,case語句來實現+,-,*,/的的實現,還要加上/0的判斷才行

Ⅳ c語言編寫 編寫一個簡單的計算器,實現兩個整型數的四則運算。

1、打開CodeBlocks,團孫新建一虛禪個空白文件,先定義頭文件和主函數,接著寫程序多大的主體:

閱讀全文

與c四則運算代碼相關的資料

熱點內容
javascript判斷郵箱 瀏覽:337
設置共享文件刪除密碼是什麼 瀏覽:205
如何將文件掃描為pdf文件 瀏覽:550
flex讀取配置文件 瀏覽:642
8位搶答器c語言程序 瀏覽:581
手機顯示空間已滿卻找不到大文件 瀏覽:554
mct找不到轉儲文件 瀏覽:642
瑪酷機器人編程使用什麼 瀏覽:331
匿名賬戶用戶名密碼 瀏覽:147
ibm期權數據在哪裡找 瀏覽:828
如何壓縮pdf和excel文件 瀏覽:483
qq瀏覽器文件怎麼找不到 瀏覽:23
手機查看未知文件類型 瀏覽:467
共享文件夾英文 瀏覽:577
ps中怎麼把刪掉的文件找回來 瀏覽:129
inwentor2014教程 瀏覽:117
2016微信男生個性簽名 瀏覽:72
qq瀏覽器在哪個文件夾 瀏覽:922
巨星2002教程 瀏覽:656
衢州小企業網站製作哪個好 瀏覽:824

友情鏈接