Boucle en c
cisco
-
cisco -
cisco -
Bonjour,
je suis un etudiant et j ai commence a prendre le langage c alors j ai fait un petit programme mais j ai un prob au niveau d un boucle.
voila le code:
je veux que l utilisateur ne saisi pas la puissance juste le coef et la puissance d une manier automatique dans une boucle merci de votre aide.
je suis un etudiant et j ai commence a prendre le langage c alors j ai fait un petit programme mais j ai un prob au niveau d un boucle.
voila le code:
#include<conio.h> #include<stdlib.h> #include<stdio.h> #define PI 1 #define dim_tab 10 main() { typedef struct polynome { int puiss; int coef; } poly; poly T[dim_tab]; typedef struct deriv_poly { int pc; int ps; }D_poly; D_poly T1[dim_tab]; int degre; int lim_coef; int i,j; debut ://========etiquete goto============= printf("entrer la degre de votre fonction\n"); scanf("%d",°re); //============REMPLIRE LA STRUCTUR=================== for(i=0;i<=degre;i++) { printf("entrer le coef\n"); scanf("%d",&T[i].coef); printf("entrer la puissance\n"); scanf("%d",&T[i].puiss); } //=============l'affichage de notre fonction======================= printf("votre fonction est f(x): %dX^%d",T[0].coef,T[0].puiss); for(i=1;i<=degre;i++) { if(T[i].coef>0 && T[i].puiss>0 && T[i].puiss!=1) { printf("+%dX^%d",T[i].coef,T[i].puiss); } else if (T[i].coef<0 && T[i].puiss>0 && T[i].puiss!=1) { printf("%dX^%d\n",T[i].coef,T[i].puiss); } else if (T[i].coef>0 && T[i].puiss==0) { printf ("+%d",T[i].coef); } else if (T[i].coef<0 && T[i].puiss==0) { printf ("%d",T[i].coef); } else if (T[i].coef>0 && T[i].puiss==1) { printf ("+%dX",T[i].coef); } else if (T[i].coef<0 && T[i].puiss==1) { printf ("%dX",T[i].coef); } } //=============TEST POUR `LA PREMIERE CASE DU TABLEAU=============== printf ("\ncoef 1 est : %d\n",T[0].coef); printf ("puiss 1 est : %d\n",T[0].puiss); if (T[0].puiss==degre && T[0].coef>0) { //===========CALCULE DE LA LIMITE QUAND X TANVERS PLUS L'INFINI============ lim_coef = PI; if (lim_coef==1) printf("la limite de votre fonction est : %d donc c'est plus l'infini\n",lim_coef); } else { printf ("verifiez s.v.p la valeur de degre\n"); goto debut; }//retour au debut //========================derive de notre fonction==================== for(i=0;i<=degre;i++) { T1[i].pc = (T[i].puiss)*(T[i].coef); T1[i].ps = (T[i].puiss)- 1; } //=========================AFFICHAGE DE LA DERIVE======================== printf("voila la derive de votre fonction f'(x):%dX^%d",T1[0].pc,T1[0].ps); for(i=1;i<=degre;i++) { if(T1[i].pc>0 ) { printf("+%dX^%d",T1[i].pc,T1[i].ps); } else if (T1[i].pc<0) { printf("%dX^%d",T1[i].pc,T1[i].ps); } } system (" \npause"); return 0; }
je veux que l utilisateur ne saisi pas la puissance juste le coef et la puissance d une manier automatique dans une boucle merci de votre aide.
A voir également:
- Boucle en c
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Pc qui s'allume et s'éteint en boucle - Forum Virus
- Huawei s'allume et s'éteint en boucle - Forum Huawei
8 réponses
moi quand j'ai appris à programmer on nous a dit "surtout n'utilisez pas de goto, c'est de la programmation spaghetti".
Bon dans ton code tu n'en utilise qu'un mais après ça devient compliqué à suivre si tu en utilise plus c'est pourquoi il faut essayer de les éviter
Bon dans ton code tu n'en utilise qu'un mais après ça devient compliqué à suivre si tu en utilise plus c'est pourquoi il faut essayer de les éviter
après je comprends pas trop ce que tu veux faire
si tu compile mn programme tu va comprendre parce que au debut du prog il demande au user de saisir la plus grande puiss de sa fonction polynomiale par ex il va saisir 4 donc apres il va saisir le coef apres la puissance tt ca vont stocker dans un tableau de struture donc si on remarque dans la fonction polynomial ke la puissance se deminue (aX^n+bX^n-1+.......+c)donc n est la puissance d une manier automatique apres chaque plus elle va perdre 1 .... voilaaaaaaa
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Essaye ça pour voir
#include<stdlib.h> #include<stdio.h> #define PI 1 #define dim_tab 10 main() { typedef struct polynome { int puiss; int coef; } poly; poly T[dim_tab]; typedef struct deriv_poly { int pc; int ps; }D_poly; D_poly T1[dim_tab]; int degre; int lim_coef; int i,j; debut ://========etiquete goto============= printf("entrer le degre de votre fonction\n"); scanf("%d",°re); T[0].puiss = degre ; //============REMPLIRE LA STRUCTUR=================== for(i=0;i<=degre;i++) { printf("entrer le coef pour le degre %d\n", T[i].puiss); scanf("%d",&T[i].coef); T[i+1].puiss = T[i].puiss -1 ; } //=============l'affichage de notre fonction======================= printf("votre fonction est f(x): %dX^%d",T[0].coef,T[0].puiss); for(i=1;i<=degre;i++) { if(T[i].coef>0 && T[i].puiss>0 && T[i].puiss!=1) { printf("+%dX^%d",T[i].coef,T[i].puiss); } else if (T[i].coef<0 && T[i].puiss>0 && T[i].puiss!=1) { printf("%dX^%d\n",T[i].coef,T[i].puiss); } else if (T[i].coef>0 && T[i].puiss==0) { printf ("+%d",T[i].coef); } else if (T[i].coef<0 && T[i].puiss==0) { printf ("%d",T[i].coef); } else if (T[i].coef>0 && T[i].puiss==1) { printf ("+%dX",T[i].coef); } else if (T[i].coef<0 && T[i].puiss==1) { printf ("%dX",T[i].coef); } } //=============TEST POUR `LA PREMIERE CASE DU TABLEAU=============== printf ("\ncoef 1 est : %d\n",T[0].coef); printf ("puiss 1 est : %d\n",T[0].puiss); if (T[0].puiss==degre && T[0].coef>0) { //===========CALCULE DE LA LIMITE QUAND X TANVERS PLUS L'INFINI============ lim_coef = PI; if (lim_coef==1) printf("la limite de votre fonction est : %d donc c'est plus l'infini\n",lim_coef); } else { printf ("verifiez s.v.p la valeur de degre\n"); goto debut; }//retour au debut //========================derive de notre fonction==================== for(i=0;i<=degre;i++) { T1[i].pc = (T[i].puiss)*(T[i].coef); T1[i].ps = (T[i].puiss)- 1; } //=========================AFFICHAGE DE LA DERIVE======================== printf("voila la derive de votre fonction f'(x):%dX^%d",T1[0].pc,T1[0].ps); for(i=1;i<=degre;i++) { if(T1[i].pc>0 ) { printf("+%dX^%d",T1[i].pc,T1[i].ps); } else if (T1[i].pc<0) { printf("%dX^%d",T1[i].pc,T1[i].ps); } } return 0; }
Salut,
J'en rajoute une couche : les goto c'est le mal. Tu te dis qu'un ça va, ça fait pas de mal, mais si ça fait du mal : ça te donne de mauvaises habitudes de programmation, et des qu'il y a deux ou trois goto, il devient extremement difficile de comprendre ton code, même pour toi au bout de quelque temps. Donc le goto, tu oublies, ça n'existe pas et tu n'en as jamais vu, d'accord ? :þ
Sinon continuons les conseils :
- pense à aérer ton code, ça le rend plus lisible ;
- pense à bien indenter ton code (je me doute qu'il a du y avoir des problème de formattage sur le forum, mais c'est bon de le rappeler).
Sinon amuse toi bien, le C, c'est le bien !
J'en rajoute une couche : les goto c'est le mal. Tu te dis qu'un ça va, ça fait pas de mal, mais si ça fait du mal : ça te donne de mauvaises habitudes de programmation, et des qu'il y a deux ou trois goto, il devient extremement difficile de comprendre ton code, même pour toi au bout de quelque temps. Donc le goto, tu oublies, ça n'existe pas et tu n'en as jamais vu, d'accord ? :þ
Sinon continuons les conseils :
- pense à aérer ton code, ça le rend plus lisible ;
- pense à bien indenter ton code (je me doute qu'il a du y avoir des problème de formattage sur le forum, mais c'est bon de le rappeler).
Sinon amuse toi bien, le C, c'est le bien !
svp