-1

数値、演算子、および 2 番目の数値の入力を取り、演算を実行して出力する C で単純な算術計算機を作成することになっている課題があります。シンプルですね。

私は具体的に数値入力に使用することに制限されていgetchar()ますputchar()。これは、入力全体を一度に1文字ずつ読み取らなければならないことを意味します...そして、数字の2文字(およびたとえば)を1つの数字として読み取る方法について混乱してい9ます。右から左に読むと、これは別の話になります。しかし、残念ながらそうではありません...191getchar()

ポインタをいただければ幸いです!

4

3 に答える 3

6

ここにいくつかの疑似コードがあります: c = getchar() num = 0 while isdigit(c) num = (num * 10) + (c - '0') c = getchar()

これは数値を累積し、右側の新しい各桁が既に表示されている桁を効果的に 10 倍することを認識します。数字以外が表示されると累積が停止するため、91+3のような文字列の解析が機能します。

于 2015-04-07T05:46:08.640 に答える
0

各入力が別々に与えられる場合は、ループを使用してみてください。

char c = getchar();
int num = 0;
int neg = 0;

if(c == '-') {
   neg = 1;
   c = getchar();
}

while(isdigit(c)) {
    num = num * 10;
    num = num + (c - '0');
    c = getchar();
}

if(neg) {
    num = num * -1;
}

基本的に、一度に 1 文字ずつ累積します。ただし、入ってくる次のキャラクターのためにスペースを空ける必要があります。したがって、数値を 10 倍して 1 桁左にシフトする必要があります。

于 2015-04-07T05:57:00.477 に答える