2016-11-30 11 views
1
#include <stdio.h> 
int main(void) 
{ 
    int i = 365, j = 100, result = i + j; 

    printf("i + j is %i\n", result); 

    int i = 100, j = 1; 
    printf("i + j is %i\n", result); 

    return 0; 
} 

9.c: 10: 10: erreur: déclaration ombres une variable locale [-Werror, -Wshadow] 9.c: 8: 9: Erreur: redéfinition du 'i'Comment redéfinir les variables en C?

+0

J'ai reformaté et marqué comme C puisque vous utilisez ''. Recommencez si c'est C++. – Bathsheba

+0

"redéfinition de 'i'" Eh bien ... regardez le code. Pourquoi pensez-vous que cela ne fonctionne pas? – Lundin

Répondre

4

Remplacer int i = 100 avec i = 100.

Vous n'êtes pas autorisé à redéclarer une variable dans la même portée en C et C++. Mais vous pouvez définir i à une valeur différente, ce que fait mon changement.

Enfin, si vous voulez que la sortie finale de result à la somme des nouvelles valeurs de i et j, alors vous devez recalculer. Mettez result = i + j; juste avant l'appel printf.

+0

La sortie est i + j est 465 i + j est 465 – Yellowfun

+1

C'est parce que vous ne réévaluez pas 'result' après avoir changé' i' et 'j'. J'ai modifié la réponse. – Bathsheba

+0

Merci, ça marche maintenant! – Yellowfun