该程序应该计算参数的数量,迭代参数列表,对于每个参数,将参数转换为整数并将其复制到数组,迭代数组的元素,将每个元素的值添加到变量(这计算元素的总和),并打印总和。参数不会超过 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 时)它打印第一个参数和第二个参数的总和......然后是第二个和第三个......然后是第三个参数的值。为什么?
这是 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)
)?