Le programme est censé calculer le nombre d'arguments, parcourir la liste des arguments, convertir chaque argument en entier et le copier dans un tableau, parcourir les éléments du tableau, ajouter la valeur de chacun à une variable (cela calcule la somme des éléments) et imprime la somme. Il n'y aura pas plus de 15 arguments. Jusqu'à présent, j'ai:Pourrais-je avoir un indice sur l'orientation du formatage?
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;
}
Ok, maintenant (quand donné trois arguments autres que ./a) elle imprime la somme du premier argument et le second argument ... puis la deuxième et la troisième ... et ensuite la valeur du troisième argument. Pourquoi?
Voici le code pour getint (je dois l'utiliser):
int GetInt (int argc, char * argv[], int i) {
if (i < 0 || i >= argc) return 0;
return atoi(argv[i]);
}
Ai-je besoin de passer par et attribuer à chaque argument un entier (ex int z = GetInt (argc, argv, i + 2)
.)?
Il y a tellement de choses qui ne vont pas avec ce code que je ne sais pas par où commencer. Il semble que vous ayez mal compris la signification de certaines parties clés du langage, telles que la portée et le retour. – SpoonMeiser