因為最後乙個運算元沒有彈出來,所以下次運算會被當成第乙個運算元,如需要清空,輸入'c『即可
#include #include #include #define maxop 100
#define number '0' //數碼訊號
void push(double d);
double pop(); //值棧
int getop(char *s); //獲取輸入字元
void printtop(); //列印值棧頂元素
int getcount(); //獲取 值棧 個數
void swob(); //交換棧頂兩個元素
void clear(); //清空值棧元素
int main()
else
printf("error:除數不能為0\n");
break;
case 'c': // 處理清空值棧函式
clear();
break;
case '\n':
printtop();
break;
default:
printf("error:unknown command\n");
break;
} }system("pause");
return 0;
}#define maxval 100
int sp = 0;
double val[maxval];
void push(double d)
else }
double pop()
else }
int getch(void);
void ungetch(int);
int dflag = 1; //乙個數中是否『.' ,沒有則存入
int _flag = 1; // 用於判斷'-' 是減號,還是負號
int getop(char *s)
else if (c == '-'&& getcount()<2 && _flag) //乙個運算元裡面只能包含乙個'-'符號
else
} if (isdigit(c) || _flag == 0 || dflag == 0)
else if (c == '.' && dflag)
}else
}} s[i] = '\0';
if (c != eof)
_flag = 1;
dflag = 1;
return number;
}void printtop()
else }
int getcount()
void swob()
}void clear()
}#define bufsize 100
char buf[bufsiz];
int bufp = 0;
int getch(void)
void ungetch(int c)
else
}
c 程式語言 第二版 練習題 3 6
自己做的練習題,不知道對不對,自學只能做到這個程度,如果有更好的方法,麻煩留我乙份,共同進步char itoa int value,char str,int w char buf 256 儲存轉換結果 char temp 用於交換資料 char to null,from null 用於交換資料 in...
c程式語言 第二版 新版 習題1 9
include define maxsize 10000 允許儲存的最大長度 輸入複製到輸出,並將連續的多個空格用乙個空格代替 int space compression char s int main void int i 0,c freopen c users wwwzh desktop dat...
c程式語言 第二版 新版 習題1 20
編寫程式detab,將輸入中的製表符替換成適當數目的空格,使空格充滿到下乙個製表符 終止位的地方.假設製表符終止位的位置是固定的,比如每隔n列就會出現乙個製表符 終止位 include define stopbit 8 製表符終止位 define maxline 1001 允許的輸入行的最大長度 i...