進擊的小白Day006 計算器(二)(完結)

2021-08-31 06:44:30 字數 1538 閱讀 9272

今天的第一篇是用來補昨天的,不知道為啥昨天寫的沒有儲存。今天寫的比較少,只是在原來的基礎上夾了乙個冪乘,修復了選擇運算模式的時候輸入浮點數出錯的問題,然後把所有整形運算擴充到可以進行浮點運算。

貼**:

#define _crt_secure_no_warnings  /*預定義常量,解決scanf不安全的報錯,需要放在#include 之前*/

#include int main()

else

}while (getchar() != '\n')

/*進入運算*/

if (flag == 1)

else if (flag == 2)

else if (flag == 3)

else if (flag == 4)

else

}return 0;

}/*求和*/

int add(void)

while (getchar() != '\n');

/*求和*/

for (j = 0, add = 0; j < i; j++)

printf("add=%g\n\n", add);

return 0;

}int sub(void)

while (getchar() != '\n');

/*求差*/

for (j = 1, sub = a[0]; j < i; j++)

printf("sub=%g\n\n", sub);

return 0;

}int mul(void)

while (getchar() != '\n');

/*求積*/

for (j = 0, mul = a[0]; j < i; j++)

printf("mul=%g\n\n", mul);

return 0;

}int div(void)

while (getchar() != '\n');

/*求商*/

for (j = 1, div = a[0]; j < i; j++)

printf("div=%g\n\n", div);

return 0;

}int mi(void)

while (getchar() != '\n');

/*冪乘*/

for (j = 0, mi = a[0]; j < (a[1] - 1); j++)

printf("mi=%g\n\n", mi);

return 0;

}

收穫

用scanf("%d", &flag)語句對flag賦值的時候,我們期望使用程式的人能夠按照我們的要求輸入整數,但如果使用者偏偏不按照我們的設想進行,那我們就得自己做好擦屁股的準備,如果輸入的是整數,皆大歡喜,如果輸入的是浮點數,如1.1,程式會把1賦給flag,然後保留後面的.1,一次賦給後面的scanf要賦值的變數,這就會造成後面scanf的輸入錯誤,怎麼來解決呢,用getchar()把後面多餘的部分吃掉

不想浮點數顯示多餘的0時,用%g輸出,但有時會省略部分數字

進擊的C語言 簡單的計算器(二)

本例項與上例的區別在於表示式中有括號。其實每個括號中的內容都可以看作是乙個單獨的表示式 也可能又帶括號 考慮到這一點,我們可以把程式寫為遞迴呼叫的方式,遇到括號則呼叫自己計算括號中表示式的值。相應的程式 如下 include stdio.h include stdlib.h float get nu...

進擊的C語言 簡單的計算器

程式設計,用來計算使用者輸入的四則運算表示式的值,只含加減乘除,不含括號。例項解析 表示式中含有加減乘除,乘除的優先級別比加減高。我們以鍵盤輸入 3.12 2 3.5 4 8 2 3 6為例來說明演算法。式子中的2 3.5 4 8 2和3 6要先算,算完之後整個表示式將只有4個資料項,剩下的問題就很...

二 php製作簡易的計算器

步驟 1 寫出兩個文字框,中間用乙個下拉列表select作為計算按鈕 2 用 set 或 get 方式獲取兩個文字框的資料及按鈕資訊進行運算 3 在輸出結果的過程中,保證兩個文字框中進行計算的資料依然存在 4 新建乙個文字框用於儲存計算輸出的結果 5 在三個文字框中用value的值獲取得到的數值 6...