C语言算小数加减,C语言带小数加减乘除.doc
C語言帶小數加減乘除
/*Desgined by doBell-ConG*/
/*Function:simply add, subtract, multiply and divide*/
#include
char Array[50];//字符數組
double Num[20];//雙精度數組
char Symbol[10];//符號數組
int arrayCount;//字符數組計數器
int numCount;//雙精度數組計數器
int symbolCount;//符號數組計數器
int loopFlag;//循環標記計數器
void transform();//轉換函數,用于把字符串分離成兩個數組,一個是待計算數的雙精度數組,另一個是運算符號的數組。
double Calculate();//計算函數,使用兩個數組計算出最終結果。
void Format();//初始化全局變量。
void main()
{
Format();
while(gets(Array)&&Array!=EOF)//該循環用以重復使用程序。
{
transform();
printf("The result = %g\n\n",Calculate());
Format();
}
}
void Format()
{
memset(Array,0,sizeof(Array));//清空全局數組
memset(Num,0,sizeof(Num));
memset(Symbol,0,sizeof(Symbol));
arrayCount = 0;
numCount = 0;
symbolCount = 0;
loopFlag = 0;
system("PAUSE"); //系統暫停語句。
system("CLS"); //系統清屏語句。
printf("Please input a string ending of ‘=’ to be calculated:\n");
}
void transform()
{
int pointFlag = 0;//精度標識,0表示小數點前的累加計算,1表示小數點后的累加計算
int pointBit = 1; //小數點位數,1表示小數點后1位,2表示小數點后兩位,依次類推。
double tempPointValue = 0;//小數點后累加臨時存放值
double tempNum = 0;//數值轉換臨時存放值
while(Array[arrayCount] != 0) //掃描字符數組,進行相應處理。
{
if(Array[arrayCount]=='+'||Array[arrayCount]=='-'||Array[arrayCount]=='*'
||Array[arrayCount]== '/'||Array[arrayCount]== '=')
{
Num[numCount] = tempNum; //如果遇到運算符,前面的數轉換完成輸入數組。
tempNum = 0;
pointBit = 1;
pointFlag = 0;
numCount ++;
Symbol[symbolCount] = Array[arrayCount];
arrayCount++;
symbolCount++;
continue;
}
else if (Array[arrayCount] == '.')//如果遇到小數點,轉換數字累加方式。
{
if(pointFlag == 0){ pointFlag = 1; }
else{ pointFlag =0; }
arrayCount++;
continue;
}
else //如果其他,即為數字,分為以下兩種情況:
{
if(pointFlag == 0) //1、小數點前的累加
{
tempNum = temp
總結
以上是生活随笔為你收集整理的C语言算小数加减,C语言带小数加减乘除.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果mt192ch/a是什么型号
- 下一篇: c语言中fr,关于frwite()函数的