Un erreur dans mon code...
Résolu/Fermé
Mathematix
Messages postés
51
Date d'inscription
lundi 25 décembre 2017
Statut
Membre
Dernière intervention
12 janvier 2024
-
2 avril 2018 à 18:51
Mathematix Messages postés 51 Date d'inscription lundi 25 décembre 2017 Statut Membre Dernière intervention 12 janvier 2024 - 3 avril 2018 à 17:55
Mathematix Messages postés 51 Date d'inscription lundi 25 décembre 2017 Statut Membre Dernière intervention 12 janvier 2024 - 3 avril 2018 à 17:55
A voir également:
- Un erreur dans mon code...
- Erreur 0x80070643 - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code erreur l11-09 - Forum TNT / Satellite / Réception
2 réponses
Watterbutter
Messages postés
75
Date d'inscription
jeudi 12 octobre 2017
Statut
Membre
Dernière intervention
5 avril 2018
27
Modifié le 2 avril 2018 à 21:48
Modifié le 2 avril 2018 à 21:48
Bonsoir !
J'ai plus pratiqué en c#, mais je pense qu'à la ligne 22, entre les paranthèse, le type ne devrait pas être affiché car ce serait re-déclarer
la variable. Essaye ça et tiens moi au courant !
Bon courage !
J'ai plus pratiqué en c#, mais je pense qu'à la ligne 22, entre les paranthèse, le type ne devrait pas être affiché car ce serait re-déclarer
la variable. Essaye ça et tiens moi au courant !
Bon courage !
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
3 avril 2018 à 08:32
3 avril 2018 à 08:32
Bonjour,
Lignes 17 et 18, un
Ligne 22, utilisation d'une fonction, il ne faut aucune indication de type, lève les 3
Lignes 17 et 18, un
scanf()a besoin de l'adresse comme comme toute fonction modifiant des paramètres, il faut ajouter un
&devant.
Ligne 22, utilisation d'une fonction, il ne faut aucune indication de type, lève les 3
int. Et il faut passer des pointeurs pas l'adresse de pointeurs donc :
change(premier, second); change(&n1, &n2); // ou bien, ce qui revient au mêmeLigne 32, ta fonction
change(), n'effectue pas un échange, tu lis la variable
aalors que tu n'as rien mis dedans au début.
Mathematix
Messages postés
51
Date d'inscription
lundi 25 décembre 2017
Statut
Membre
Dernière intervention
12 janvier 2024
8
3 avril 2018 à 17:55
3 avril 2018 à 17:55
Merci beaucoup Dalfab,
L'erreur de compilation ne provenait pas de l'oublie du & (vous me pardonnez, je suis débutant ;-) ) dans la fonction
Et puis, pour l'erreur de l'inversion des deux nombres : je n'avais pas plus vérifier le code car il y a eu une erreur de compilation (je ne suis qu'un "programmeur" novice).
Voici donc le code qui fonctionne correctement :
Merci encore pour vos réponses !
L'erreur de compilation ne provenait pas de l'oublie du & (vous me pardonnez, je suis débutant ;-) ) dans la fonction
scanf(), mais elle venait des int pour chaque pointeur dans la fonction et du int avant la fonction...
Et puis, pour l'erreur de l'inversion des deux nombres : je n'avais pas plus vérifier le code car il y a eu une erreur de compilation (je ne suis qu'un "programmeur" novice).
Voici donc le code qui fonctionne correctement :
/* Ecrire un programme qui échange deux entiers saisis. Afficher les entiers avant et après l'échange. */ #include <stdio.h> int change(int *n1, int *n2); int main(void) { int n1, n2; int *premier = &n1; int *second = &n2; printf("Premier nombre : "); scanf("%d", &n1); printf("Second nombre : "); scanf("%d", &n2); printf("Voici les nombres interchangés : \n"); change(premier, second); printf("Permier nombre : "); printf("%d\n", *premier); printf("Second nombre : "); printf("%d\n", *second); return 0; } int change(int *premier, int *second) { int a; a = *premier; *premier = *second; *second = a; }
Merci encore pour vos réponses !