• 締切済み

四則演算プログラム

2つの数字を四則演算するプログラムを作ろうと 思っているんですが、 (1)関数atoiを使う、 (2)int main(int argc, char +argv[])と  宣言する、 (3)足し算の場合のみ、2つ以上の数字を計算できる ということが条件なんですけど、どなたか プログラムがどのようなものか教えていただけ ませんか??

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

条件を満たしていませんけど、こんな感じかな ---------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ int a, b, result; char op; int i=0; if(argc < 4){ fprintf(stderr, "引数がたりません。\nex)calc 123 * 456\n"); return -1; } a=atoi(argv[++i]); redo: op = *argv[++i]; b=atoi(argv[++i]); switch(op){ case '+': result=a+b; break; case '-': result=a-b; break; case '*': result=a*b; break; case '/': result=a/b; break; default: fprintf(stderr, "使用できる演算子は +,-,*,/ の4つです。"); return -2; } if(i<argc - 1){ a=result; goto redo; } printf("ans=%d\n", result); return 0; }

  • ko_kinta
  • ベストアンサー率39% (43/109)
回答No.2

学校の宿題ですか? プログラム名を仮に"calc"とした場合、コマンドラインで"calc 1 + 2 + 3"などと入力して実行すると答えを出力する、というような処理にすればいいのではないでしょうか。 まず(2)。 第2パラメータ"+argv[]"は"*argv[]"のタイプミスですね。 main関数で入力された引数を判断します。 演算不可能な引数であればエラーを返して終了します。 それから(1)。 引数はchar型でmain関数に渡されるのでatoi()を使って数値にしなさいということでしょう。 (3)は"3つ以上の数字を"でないと意味を成しませんね。 足し算以外で3つ以上の数字が指定された場合はエラーを返す、といった仕様にすればこの条件も満たされます。 これでイメージが掴めたら後はがんばって作りこんでください。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

> ということが条件なんですけど、どなたか > プログラムがどのようなものか教えていただけ > ませんか?? 提示されている条件をすべて満たすことは不可能です。特に(2)