la question n'est pas claire car je ne pense pas utiliser le do while correctement :oops:
Version imprimable
la question n'est pas claire car je ne pense pas utiliser le do while correctement :oops:
La forme générale de cette structure de control de flux (flow control structure) est:
Son exécution est:Code:
1
2
3 do { <code de chaque iteration> } while (condition);
- executer le <code de chaque itération>
- si condition est vraie revenir au point 1
Ok j ai compris...ce qui veut dire que =! Permet de sortir de la boucle dams un code do agile qui demande écrire un nombre 10.
Merci. Es ce que sa veut dire ( ) que elle n est pas vérifié si elle est vrai ou rien à voir ?
J'ai vraiment l'impression que tu pars dans tous les sens et que tu ne fais pas les efforts pour comprendre ce que tu vois, ce que tu lis, ce que tu dis. Ne le prend pas mal, je te concède que ce n'est pas simple au début. Tu dois prendre à bras le corps cette difficulté et faire tous les efforts nécessaires pour la surmonter.
La structure do / while est expliquée de manière exhaustive sur internet. Prend le temps de lire et de relire pour bien comprendre.
Aussi, tu ne sembles pas faire les codes les plus simples, en tout cas tu ne les montres pas, pour comprendre les concepts que tu manipules. Tu te lances directement dans un do while avec une condition composée. Fais déjà une condition simple (ex : continuer tant le nombre saisi n'est pas 10, puis tant que le nombre est 10). Ces codes en apparence simplistes sont utiles voire nécessaires a la bonne compréhension des concepts. N'hésite pas à passer du temps dessus ;)
Enfin, oui : une condition est vérifiée si elle est vraie. Mais cela ne te semble pas naturel en français ? :) (ce n'est peut-être pas ta langue maternelle...)
PS : tu te rends compte que ta façon de vérifier si un nombre est pair est partielle d'un point de vue mathématiques ? :aie:
Merci pour cette remarque mais je ne penses pas passer à côté des choses. Je pose simplement des questions pour plus tard...
Sinon, bien sûr que je fais les efforts pour comprendre ce que je fais sinon je ne saurais pas là mais comme tout bon modérateur tu as le droit de penser que je réécris juste ce qu'on me dit, pourtant j'ai pas l'impression de poster tout le temps de post et poser tout les jours des questions. Quand je n'en pose pas c'est que ça va, j'ai compris.
Le fait que je pose t'elle ou t'elle question me permet surtout d'avoir une garantie de réponses adéquate...
Je bosse avec l'ebook que j'ai reçu ici et qui m'aide beaucoup mais peut être que effectivement je ne montre pas mes structures car je n'en ai pas compris que vous aimeriez savoir ou j'en suis dans mon apprentissage du code C...
J'en suis au chapitre et les chadoks pompaient....Faire
Saisir un nombre
Tant Que (nombre != 10)#include<stdio.h>
int main (){
int nmbre;
printf("ecrit un nombre 10 pour arreter\n", nmbre);
do{
scanf("%d", &nmbre);
}while(nmbre =!10);
return 0;
}
exemple de code:
J'ai fais pleins de choses....
hier j'ai passé toute la journée à faire des boucles, les trois!
Code:
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> int main (){ int valeur = 0; printf("affichez une valeur entre 1 a 100\n"); do{ scanf("%d",&valeur); }while (valeur <=100); return 0; }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <stdio.h> int main () { int valeur; printf("saisir une valeur de 1 a 5\n"); do{ scanf("%d", &valeur);} while((valeur==1)||(valeur==2)||(valeur==3)||(valeur==4)||(valeur==5)); return 0; }
Code:
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> int main () { int nombre = 10; for(nombre = 10; nombre >= 0; nombre--){ printf("%d", nombre); } return 0; }
Après l'impression que si l'impression que je donne est un peu perché, c'est normal je le suis resté un peu:ptdr:.
J'essaye de m'en sortir comme je peux !
Merci comme même de la remarque du modérateur qui ne me semble pas justifié mais que je comprends très bien,
Merci à vous !Ternel, nnovic,Bktero et tout les autres !
Bktero je prends très bien les deux premières lignes de ta phrases car effectivement j'ai un problème de concentration et je me bat pour ne pas aller dans tout les sens. (A bras le corps), comme tu dis...merci de ton intérêt !
Nici
Ternel, je vais faire ça car je ne l'ai pas encore travailler, merci.
Code:
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
27
28
29 #include<stdio.h> void echanger_entiers(int * premier, int * deuxieme) { // cette fonction échange la valeur des entiers désignés par premier et deuxieme // c'est-à-dire, les nombres *premier et *deuxieme. // ... à toi de coder ça } int main () { int a = 0, b = 0, c = 0; //obtenir les trois nombres printf("Veuillez saisir trois nombres entiers:"); scanf("%d %d %d", &a, &b, &c); printf("Vos trois nombres sont: %d %d %d\n", a, b, c); //trier les trois nombres en utilisant la fonction echanger_entiers // par exemple, pour échanger a et b, utiliser echanger_entiers(&a, &b); // ... à toi de coder ça correctement // comme on les a triés, on a maintenant a < b et b < c; //afficher les nombres triés printf("Et dans l'ordre croissant: %d %d %d\n", a, b, c); return 0; }
ternel je ne vois pas !
Ai je oublié quelque chose dans le void ?
Le programme me retourne bien un ordre mais pas de nombre entier mais des nombre décimaux, comme si mes a,b,c n'avaient pas été reconnus !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include<stdio.h> void echanger_entiers(int * premier, int * deuxieme){ int a; int b; } int main (){; int a; int b; int c; printf("veuillez saisir 3 entiers"); scanf("%d %d %d", &a, &b, &c); printf("vos 3 nombres etaient %d %d %d\n", a, b, c); echanger_entiers(&a, &b); echanger_entiers(&b, &c); printf("dans l odre croissant %d %d %d", &a, &b, &c); return 0; }
Help stp !
C'était un peu le but du post d ailleurs que je fasse cette exercice, pardon d'avoir mis autant de temps :roll:
Bah je sais pas trop. Peut-être (à tout hasard) on pourrait écrire les instructions effectuant réellement l'échange de façon concrète...
Peut-être aussi éviter de mettre "&a" quand tu veux juste afficher a !!!Code:
1
2
3
4
5
6
7
8
9 #include<stdio.h> void echanger_entiers(int *x, int *y){ int tmp; tmp=(*x); *x=(*y); *y=tmp; }
PS: évite d'écrire 500 posts à la suite. Si tu oublies un truc, tu appuies sur "editer" et tu rajoutes ce que tu as oublié...
PS2: pour ta dernière boucle (le "for" qui va de 10 à 0), remplace int nombre = 10 par unsigned int nombre = 10 et ça sera très amusant :aie:
Désolé pour le multipostage
ternel, peux tu me dire si ma structure d echange est juste ? Merci d'avance !
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include<stdio.h> void echanger_entiers(int * premier, int * deuxieme){ int a; int b; } int main (){; int a; int b; int c; printf("veuillez saisir 3 entiers"); scanf("%d %d %d", &a, &b, &c); printf("vos 3 nombres etaient %d %d %d\n", a, b, c); echanger_entiers(&a, &b); echanger_entiers(&b, &c); printf("dans l odre croissant : %d %d %d", a, b, c); return 0; }
Je pose ma question à bktero, es ce que ma conception mathématique est compliqué dans ce code, je m'explique, le code ne marche pas et je ne saisi pas si c'est parce que je n'arrive pas à écrire autrement mes conditions alors j'aimerais savoir si il existe une autre manière de faire pour exercer les calculs dans un ordre précis, ou pas d'odre mais initialisé.
Merci d'avance !
d'après toi, que fais cette fonction:
Code:
1
2
3
4 void echanger_entiers(int * premier, int * deuxieme){ int a; int b; }
Elle déclare une variable qui n a pas d entier et déclare une variable qui s appelle premier et deuxième. Ensuite les deux int déclare a et b...?
Void echanger entier (int*a, int*b)
La réponse est
Rien.
C'est une fonction qui ne retourne rien (son type est void)
Elle prend en argument deux pointeurs d'entiers, qu'elle appelle premier et second.
Sa seule activité est de définir deux variables locales a et b, toutes deux entières, et toutes deux sans valeur initiales.
Ca ne correspond pas du tout à son nom "echanger_entiers".
Lache le code deux minutes, et fait une comparaison.
Enlevons le problème des pointeurs un instant.
Prends devant toi deux objets quelconques. Pour la suite je vais dire que ce sont une pomme et une poire.
Ils vont représenter les valeurs des deux entiers.
Prends en un dans chaque main (mettons la pomme en main gauche, et la poire en main droite).
Tes mains, ce sont deux variables.
Ainsi, la valeur de "main gauche", c'est "pomme".
Pour échanger le contenu de tes deux mains, comme elles sont pleines, tu dois en libérer une.
Une solution, c'est:
- poser la pomme devant toi
- mettre la poire dans la main gauche
- reprendre la pomme en main droite.
Pour le C, c'est un peu pareil (sauf que tu ne vides pas une variable, tu copies les valeurs.
Sans fonction, ca se fait donc comme ceci:
Avec la fonction, comme il faut modifier les valeurs depuis l'extérieur on utilise des pointeurs comme paramètres.Code:
1
2
3
4 int a = 1, b = 2;// les deux mains, dans l'état initial. int c = a; // je crée une copie de la valeur de a. (c contient 1) a = b; // je copie la valeur de b dans a (donc, a contient 2) b = c; // je remplace l'ancienne valeur de b par l'ancienne valeur de a (celle que j'ai soigneusement pensé à copier)
Les trois variables sont donc *premier, *second et temp.
C'est précisément le code que t'as donné Sve@r.