- 締切済み
四則演算プログラム
2つの数字を四則演算するプログラムを作ろうと 思っているんですが、 (1)関数atoiを使う、 (2)int main(int argc, char +argv[])と 宣言する、 (3)足し算の場合のみ、2つ以上の数字を計算できる ということが条件なんですけど、どなたか プログラムがどのようなものか教えていただけ ませんか??
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
条件を満たしていませんけど、こんな感じかな ---------------------------------------------------------------- #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)
学校の宿題ですか? プログラム名を仮に"calc"とした場合、コマンドラインで"calc 1 + 2 + 3"などと入力して実行すると答えを出力する、というような処理にすればいいのではないでしょうか。 まず(2)。 第2パラメータ"+argv[]"は"*argv[]"のタイプミスですね。 main関数で入力された引数を判断します。 演算不可能な引数であればエラーを返して終了します。 それから(1)。 引数はchar型でmain関数に渡されるのでatoi()を使って数値にしなさいということでしょう。 (3)は"3つ以上の数字を"でないと意味を成しませんね。 足し算以外で3つ以上の数字が指定された場合はエラーを返す、といった仕様にすればこの条件も満たされます。 これでイメージが掴めたら後はがんばって作りこんでください。
- jacta
- ベストアンサー率26% (845/3158)
> ということが条件なんですけど、どなたか > プログラムがどのようなものか教えていただけ > ませんか?? 提示されている条件をすべて満たすことは不可能です。特に(2)