Oui, vu qu'il s'agit de "généraliser".
En fait, c'est pour ca que tu va faire une fonction.
Voire même deux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... as_base_of(int n, int base) { ... } ... binary_of(int n) {return as_base_of(n, 2);}
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
Et quant à la question sur la taille du tableau:
Réfléchis, quelle est le nombre de bits maximal d'un nombre entier en C sur la plupart des plate-formes d'aujourd'hui?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
ha ok
64
super tout avance très bien,
je n'ai plus qu'à me lancer sur la dernière partie
elle consiste dans la continuité de ces exemple mais de partir sur une base 16, donc avec les lettres de A à F pour les nombres de 10 à 15
ça devrais aller
le truc bête de l’énoncé, est que je dois faire un tableau pour les reste de 0 à 9
et un tableau pour les reste en letttre de A à F
ce qui me complique l'affichage final car je ne devrait prendre pour chaque position que la valeur contenue dans un des tableau en fonction s'il est nul ou pas
je fais ça de suite et je poste si je but sur un soucis
Commence par te faire une fonction qui prend en entrée une valeur de "chiffre" et te retourne un caractère chiffre ou lettre, ça rendra les choses plus simples.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
petit soucis de pratique
je dois afficher les résultat du tableau à l'envers
le code à l'endroit fonctionne
alors que le code inverser si dessous n'affiche rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for(i=0;i<compteur_tableau;i++) { printf("la valeur %d du tableau est %d\n",i,tableau [i]); }
qui vois pourquoi ? merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for(i=compteur_tableau;i=0;i--) { printf("la valeur %d du tableau est %d\n",i,tableau [i]); }
Personnellement, mon truc c'est de remplir le buffer en partant de la fin: D'abord insérer le caractère nul à la fin, puis mettre les "chiffres" un par un devant.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Vue que je suis aveugle, ben je vois rien contrairement à vous,
par contre vous voyez pas la même chose,
du coup je vois pas mieux
enfin, si vous voyez ce que je veux dire
Et si tu te concentrais attentivement sur les 3 instructions d'une boucle for (celles qui sont dans les parenthèses) ? Que signifie la première, la seconde (surtout dans ton cas) et bon la 3° on s'en fout mais peut-être que ça ne te fera pas de mal de te la remémorer aussi. A la limite, tu peux faire un comparatif, instruction par instruction, avec ton premier for (celui qui fonctionne).
Et surtout ne reviens pas nous dire "non je ne vois pas" sans rien écrire de plus. Si tu reviens ce sera soit en nous disant que t'as compris et en nous montrant ton code corrigé ; soit (dans le pire des cas) en nous écrivant textuellement ce que tu sais de ces 3 instructions for (instructionA; instrutionB; instructionC)...
C'est vrai. Le bug relevé par archMqx. est plus subtil (il m'est passé à coté). J'ai eu +3 mais lui il mériterait +4
Disons que celui que j'ai relevé est le principal qui bloque tout. Si tu le corriges, ça débloquera ton code et ça fonctionnera suffisemment pour que tu puisses voir plus de trucs se passer. Et dès lors ça devrait t'indiquer qu'il y a un second problème, problème relevé par archMqx...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
pour ce que je comprend pour for
for (compteur; condition; modification du compteur)
compteur; pour moi le compteur est "i", qui démarre à la valeur du compteur du tableau
condition; la condition est que lorsque i=0, la boucle s’arrête
modification du compteur; réduire de 1, la valeur de i à chaque tour de boucle
quand j'ai tester en mettant i=1 à la place de i=0, j’obtiens une boucle infini
suite à des recherches j'ai trouvé la solution mais sans comprendre pourquoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for(i=compteur_tableau-1;i>=0;i--)
compteur_tableau-1, j'ai compris, mais pourquoi "i>=0" et pas "i=0" ?
Première incompréhension.
s'explique ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part for (expre 1; expr2; expr3) instruction
Si instruction se trouve être un bloc d'instruction, c'est pareil.expre1; tant que expr2 faire instruction expr3 fin tant que
Par ailleurs, tu confonds autre chose: = n'est pas ==.
je t'invite à relire ces explications.
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
Parce que i=0 est une affectation, pas une condition. Et la condition littérale serait "tant que" (donc "autant de fois que la condition est vraie") et non "jusqu'à ce qu'elle soit vraie".
Donc "tant que i >= 0, faire". En faisant un comparatif littéral avec la première boucle (où c'était écrit "tant que i < compteur_tableau") tu aurais pu t'en rendre compte tout seul...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
je peine bêtement sur ce problème d'affectation,
j'oublie qu'en mettant "=" au lieu de "==" je crée une obligation et non une condition
j'attaque sur la dernière partie
qui consiste à passer en hexadécimal un nombre entier
et dans un seul tableau gérer des entier (1 à 9) et des lettres (A à E), dans un tableau char
le temps d'avancer sur ce problème je bloquerais surement dans l'affichage ou le stockage des informations dans le tableau
Oui mais même avec "==" ça n'aurait pas fonctionné non plus. Parce que i n'étant pas égal à 0, ta boucle n'aurait pas tourné une seule itération.
Sois pas négatif. Pense attentivement à ce qu'il faut faire, étape par étape, et traduis-le en instructions simples...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Tout est ok
j'ai fini cette dernière étape
merci à vous tous pour vos précieux conseil
je progresse
step by step
grâce à vous
Ouais mais tu nous mettrais ton code final ça serait un plus...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
oui, pardon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #include <stdio.h> char tableau[65]; int main(){ /*declaration des variables*/ int nombre, compteur_tableau=0,diviseur=16, reste; printf("veuiller saisir un nombre entier :\n"); scanf("%d",&nombre); while (nombre>0) { reste = nombre%diviseur; if(reste<9) tableau[compteur_tableau]='0'+reste; else tableau[compteur_tableau]='A' +(reste-10); nombre/=diviseur; compteur_tableau++; } /*affichage du resultat*/ for (nombre=compteur_tableau -1;nombre+1;nombre--){ printf ("%c", tableau[nombre]); } printf("\n"); return 0; }
Ne fais pas de globale, voyons.
Déclare le tableau dans main.
Pour le reste, ton code est raisonnable.
On pourrait ajouter une vérification sur la saisie (scanf n'est pas très adapté à la lecture)
Il y a une occasion pour utiliser l'opérateur ternaire.
ceci peut aussi s'écrire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(reste<9) tableau[compteur_tableau]='0'+reste; else tableau[compteur_tableau]='A' +(reste-10);
Et éventuellement, je ferai bien une fonction pour cela.
Code : Sélectionner tout - Visualiser dans une fenêtre à part tableau[compteur_tableau]= (reste<9) ? '0'+reste : 'A' +(reste-10);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //suppose que n est dans [0..15] char hex_digit_of(int n) { return (n<9) ? '0'+n : 'A' +(n-10);}
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager