C 程式語言 4 3

2021-10-05 08:51:14 字數 1634 閱讀 1383

練習 4-3在有了基本框架後,對計算器程式進行擴充就比較簡單了。在該程式中加入取模(%)運算子,並注意考慮負數的情況。

完全是拿書上的函式用的,只針對題目要求增加了「%」部分。以下幾個**塊需要分別儲存在不同的檔案中,最終一起編譯。

標頭檔案——calc.h 

#define number '0'

void push(double);

double pop(void);

int getop(char );

int getch(void);

void ungetch(int);

main函式——main.c

#include #include #include "calc.h"

#include #define maxlen 100

#define maxop 100

int getop(char );

void push(double);

double pop(void);

int main()

else

if (op2 < 0.0) //若第乙個運算元為負,將其變為正數

else

push((int)op1 %(int)op2);

}break;

case '\n':

printf("\t%.8g\n", pop());

break;

default:

printf("error: unknown command %s\n", s);

break;

} }return 0;

}

floor函式中加0.5的原因是double型別中,當輸入1時,有可能被儲存為0.999999,故這樣操作四捨五入。來自

類似getchar()函式的擴充套件——getch.c

#include #define bufsize 10

#include "calc.h"

char buf[bufsize];

int bufp = 0;

int getch(void)

void ungetch(int c)

運算元棧函式——stack.c

#include #include "calc.h"

#define maxval 100

int sp = 0;

double val[maxval];

void push(double f)

double pop(void)

}

從輸入的字串中獲取運算元或操作符函式——getop.c

#include #include #include "calc.h"

int getch(void);

void ungetch(int);

int getop(char s)

我使用的是mingw編譯器,具體在編譯的時候輸入

gcc calc.h main.c getop.c getch.c stack.c -o calc

就可以生成.exe程式。

4 3 C語言基本運算子

我們小學數學學過加 減 乘 除等運算符號以及四則混合運算,而這些運算符號在 c語言中也有,但是有些表達方法不一樣,並且還有額外的運算符號。在 c 語言程式設計中,加 減 乘 除和取餘數的符號分別是 此外,c 語言中還有額外的兩個運算子 和 他們的用法是一樣的,乙個是自加 1,乙個是自減 1,我們選 ...

C語言程式設計

輸入乙個字串其中包含一鐘特殊的字元 其餘都是數字比如 12?32 設這個數字為w 再輸入乙個同一長度的整形數字x 要求計算w大於x的個數 include include include include void main int detect char s return counter int co...

c語言程式設計

1.輸入乙個整數,把該整數分別按照八進位制 十進位制 十六進製制形式輸出 include stdio.h main 2.輸入乙個小數 整數部分3位 小數部分5位 把該小數分別按照以下格式輸出 小數部分4位寬度,整個數字8位寬度 include stdio.h main 小數部分3位寬度,整個數字9位...