プログラムは、引数の数を計算し、引数のリストを反復処理し、引数ごとに引数を整数に変換して配列にコピーし、配列の要素を反復処理し、それぞれの値を変数 (これは要素の合計を計算します)、および合計を出力します。15 を超える引数はありません。これまでのところ、私は持っています:
int sumofA (int sizeofA, int x, int y){
int i = sizeofA;
if (i <= 15){
int z = x + y;
return z;
}
}
int main (int argc, char*argv[]){
int sizeofA = argc - 1;
int i = 1;
while (i <= sizeofA){
int x = GetInt (argc, argv, i);
i = i + 1;
int y = GetInt (argc, argv, i);
printf ("%d\n", sumofA (sizeofA, x, y));
}
return 0;
}
さて、(./a 以外の 3 つの引数が指定された場合)、最初の引数と 2 番目の引数の合計、次に 2 番目と 3 番目の引数、そして 3 番目の引数の値が出力されます。なんで?
GetInt のコードは次のとおりです (これを使用する必要があります)。
int GetInt (int argc, char * argv[], int i) {
if (i < 0 || i >= argc) return 0;
return atoi(argv[i]);
}
各引数を調べて整数に割り当てる必要がありますか (例: int z = GetInt (argc, argv, i + 2)
)?