1.処理概要 起動パラメータとして「x」と「y」の2つの整数、演算子を受け取り、 足し算と引き算と、その足し算と引き算だけを使って割り算または、掛け算を行い答えを表示する。
2.入力パラメータ仕様 入力パラメータは、起動パラメータとして受け取る。
x 演算子 y
x 演算子 y
また、終了時は、quitもしくはexitで終了させる。
3.入力チェック仕様 入力パラメータは、以下の規則によりチェックする。
x:数値であること
y:数値であること
式:+、-、÷、×であること
x:数値であること
y:数値であること
式:+、-、÷、×であること
4.計算
(a)足し算
(b)引き算
(a)足し算
(b)引き算
(c) 割算 xからyを繰り返し引きます。 x<y となるまで繰り返します。 繰り返した回数が商となる。
(d) 掛算 xを答えに繰り返し足します。 足した回数がyとイコールとなるまで繰り返す。
5.出力編集 出力はコンソールに行うものとし、以下の形式で出力する。
N:式
--------------------------------
99999 N 99999 = 99999 ... 99999
N:式
--------------------------------
99999 N 99999 = 99999 ... 99999
6.例外処理
以下の場合はエラーとしメッセージを出力する。
以下の場合はエラーとしメッセージを出力する。
ゼロ除算:yがゼロである → 0割りはできません
7.制約事項 本計算機システムは整数(正数)のみの対応とする。
以下、作成したサンプルコード。ガサツですが。。。(2015/08/11 エラー処理が未熟なので後でアップデートする)
#includeint main() { int x,y,z,i; char op; char str[1024]; /*1つ目の数値入力判定*/ do { printf("1つ目の数値を入力してください:"); scanf("%d",&x); gets(str); } while (str[0]); /*演算子入力判定*/ printf("演算子を入力してください:"); scanf("%c",&op); switch(op){ case '-': break; case '+': break; case '*': break; case '/': break; default: printf("計算式が誤っています\n"); return 0; } /*1つ目の数値入力判定*/ do { printf("2つ目の数値を入力してください:"); scanf("%d",&y); gets(str); } while (str[0]); /*計算部*/ switch(op){ case '-': z = x - y; break; case '+': z = x + y; break; case '*':z=0; for(i=1;i<=y;i++){z=z+x;} break; case '/': /*yがゼロ*/ if(y==0){printf("ゼロ割りはできません\n");return 0;}; z=x-y; for(i=1;y<=z;i++){z=z-y;} z=i; break; } /*表示部分*/ printf("--------------------------------\n" "%d %c %d = %d\n",x,op,y,z); return 0; }
0 件のコメント:
コメントを投稿