07/07/14 10:34:36
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):次のプログラムは、式を入力すると計算結果を表示するプログラムであるが、
誤っている点があります。現在の内容を理解し、誤りを訂正してコメントをつけてください。
#include <stdio.h> #include <stdlib.h> #include <ctype.h>
char *p; char c[100]; int expression(void); int term(void);
int number(void); main(){ int ans; while(1){
printf("Enter expression : "); fgets(c,90,stdin); p=&c;
if(*p == '\n') break; ans = expression();
printf("Answer:%d\n", ans); } } int expression(){ int ans;
ans = term(); while(1){ if(*p == '+'){
ans = ans + term(); }else if(*p == '-'){
ans = ans - term(); }else break; }
return(ans); } int term(){
int ans,x; ans = number();
while(1){ if(*p == '*'){
ans = ans * number(); }else if(*p == '/'){
x = number(); if(x == 0){
printf("Division by 0\n"); exit(1); }
ans = ans / x; }else break; }
return(ans); } int number(){
int i=0; while (isdigit(*p)){
i=i*10+(*p++)-48;} return(i); }
[3] 環境
[3.1] OS: Windows [3.2] gcc 3.4 [3.3] 言語: C言語
[4] 期限: 2007/7/17 改行が多すぎて、乗せられなかったためこんな形になりますた。すみません。宜しくお願いします。