コマンドラインで2つの変数を入力するプログラムを作った。Cのコマンドライン入力
入力が5〜15だった場合、出力は次のようになります。私は、5〜15を入力したときに
0.00 15.00 30.00 45.00 60.00
1.00 0.97 0.87 0.71 0.50
ただし、コマンドプロンプトに私が取得:ここ
0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00
は私のコードです:
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
char buff[256];
double length;
double stepSize;
double cosValue;
double val = PI/180.0;
double i;
int main(int argc, char *argv[]) {
length = atof(argv[1]);
stepSize = atof(argv[2]);
for (i = 0; i < length; i++) {
double stepSizeEdit = stepSize * i;
printf("%.2lf ", stepSizeEdit);
}
printf("\n");
for (i = 0; i < length; i++) {
double stepSizeEdit = stepSize * i;
cosValue = cos(stepSizeEdit * val);
printf("%.2lf ", cosValue);
}
}
コマンドライン引数を取る部分は次のとおりです。
length = atof(argv[1]);
stepSize = atof(argv[2]);
ここでは、argv値を文字列から倍精度に変換していますが、これは間違っていますか?
デバッグを試しましたか?例えば'length'と' stepsize'を出力して、それらが期待値を含んでいるかどうかを調べます。 – John3136
あなたは 'argv [1]'と 'arg [2]'の値の 'printf'出力やそれらに割り当てられた' length'と 'stepsize'の内容など、あなた自身でこれを理解しようと努力しましたか?デバッガでコードをステップ実行するのはどうですか?それはあなたに何を伝えるのですか? –
Length = 0 stepSize = 0 – Orcka