Besoin aide pour programme .cpp
Résolu
benjamin71
-
benjamin71 -
benjamin71 -
Bonjour à tous, j'ai un petit programme à faire et je n'ai pas pu installer le logiciel sur mon pc alors j'aimerais vous montrer ce que j'ai fais pour savoir si ca va marcher en cours lors de l'interro.
En fait, c'est un programme très simple pour vous je pense, mais bien assez complexe pour moi lol. Le but est lorsque l'on tape le numéro du département (j'ai choisi 71, 89, 21, 58) le programme nous affiche le nom du département.
Alors voila ce que j'ai fais :
#include<stdio.h>
void main ()
{char code [20];
float 71 21 58 89 region
{code=France;
while(code!=France);
printf("Entrer le nom du pays ");
scanf("%s", &code);
}
{code=Bourgogne;
while(code!=Bourgogne);
printf("Entrer le nom de la région ");
scanf("%s", &code);
}
{printf("Entrer le numéro du département : %f \n", region);
if(region=71)
printf("Ce numéro correspond au département de la Saone et Loire \n");
if(region=21)
printf("Ce numéro correspond au département de la Cote dOr \n");
if(region=58)
printf("Ce numéro correspond au département de la Nievre \n");
else printf("Ce numéro correspond au département de lYonne \n");
}
}
Merci de me dire si mon programme fonctionne ou non, et si possible me dire ce qui ne va pas.
Merci beaucoup d'avance.
Benjamin
En fait, c'est un programme très simple pour vous je pense, mais bien assez complexe pour moi lol. Le but est lorsque l'on tape le numéro du département (j'ai choisi 71, 89, 21, 58) le programme nous affiche le nom du département.
Alors voila ce que j'ai fais :
#include<stdio.h>
void main ()
{char code [20];
float 71 21 58 89 region
{code=France;
while(code!=France);
printf("Entrer le nom du pays ");
scanf("%s", &code);
}
{code=Bourgogne;
while(code!=Bourgogne);
printf("Entrer le nom de la région ");
scanf("%s", &code);
}
{printf("Entrer le numéro du département : %f \n", region);
if(region=71)
printf("Ce numéro correspond au département de la Saone et Loire \n");
if(region=21)
printf("Ce numéro correspond au département de la Cote dOr \n");
if(region=58)
printf("Ce numéro correspond au département de la Nievre \n");
else printf("Ce numéro correspond au département de lYonne \n");
}
}
Merci de me dire si mon programme fonctionne ou non, et si possible me dire ce qui ne va pas.
Merci beaucoup d'avance.
Benjamin
A voir également:
- Besoin aide pour programme .cpp
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
3 réponses
Non, il y a plein d'erreurs ;).
D'ailleurs, j'ai pas tout compris ce que tu voulais faire avec ton programme.
Pourquoi tu demandes le nom du pays ? le nom de la région ? Ce n'est pas juste les départements ?
Cdlt
D'ailleurs, j'ai pas tout compris ce que tu voulais faire avec ton programme.
Pourquoi tu demandes le nom du pays ? le nom de la région ? Ce n'est pas juste les départements ?
Cdlt
Non, j'ai toujours pas tout compris.
Sinon, je t'ai fait un programme qui marche avec plusieurs boucle do while un tableau pour que tu vois comment ça marche.
Sinon, au niveau de ton code. Tu avais plusieurs erreurs.
Lorsque tu fais une comparaison en C, tu dois doubler l'opérateur d'égalité. Par exemple : if(a==5)...
Si tu mets un seul égal, alors la variable stockera la valeur 5 qui renverra 5. Et comme 5 est toujours vrai. Ton if ne sert à rien. Donc, très important (pas signalé à la compilation).
Lorsque tu as : char code[20]; et que tu fais un scanf. Il ne faut pas d'esperluette (&).
Tu dois utiliser : scanf("%s",code). (Par contre pour les caractères et les nombres, oui il faut bien mettre l'esperluette ;)).
float 71 ... region Je sais pas ce que tu voulais faire, mais en tout cas ça marche pas. float region; déclarera une variable pouvant stocker un nombre flottant (réel).
Dans ton code, tu as mis des accolades partout. Attention, l'accolade est importante. Il faut pas s'en servir pour grouper des bloques d'information.
Et enfin, moins grave mais je signale quand même. Evite le void main(), utilise plutôt int main() ;)
Allez, voici mon code :
Si t'as des questions n'hésite pas.
Cdlt
Sinon, je t'ai fait un programme qui marche avec plusieurs boucle do while un tableau pour que tu vois comment ça marche.
Sinon, au niveau de ton code. Tu avais plusieurs erreurs.
Lorsque tu fais une comparaison en C, tu dois doubler l'opérateur d'égalité. Par exemple : if(a==5)...
Si tu mets un seul égal, alors la variable stockera la valeur 5 qui renverra 5. Et comme 5 est toujours vrai. Ton if ne sert à rien. Donc, très important (pas signalé à la compilation).
Lorsque tu as : char code[20]; et que tu fais un scanf. Il ne faut pas d'esperluette (&).
Tu dois utiliser : scanf("%s",code). (Par contre pour les caractères et les nombres, oui il faut bien mettre l'esperluette ;)).
float 71 ... region Je sais pas ce que tu voulais faire, mais en tout cas ça marche pas. float region; déclarera une variable pouvant stocker un nombre flottant (réel).
Dans ton code, tu as mis des accolades partout. Attention, l'accolade est importante. Il faut pas s'en servir pour grouper des bloques d'information.
Et enfin, moins grave mais je signale quand même. Evite le void main(), utilise plutôt int main() ;)
Allez, voici mon code :
#include<stdio.h> int main (void){ char code[][20] = {"ain","aisne","allier"}; int dept; int choix; do{ do{ printf("\nnuméro du département : "); scanf("%d",&dept); }while(dept<1 || dept>sizeof(code)/sizeof(*code)); printf("Le nom du département (%d) est : %s\n",dept,code[dept-1]); do{ printf("\nrecommencer ? Taper 1 pour Oui, 0 pour Non : "); scanf("%d",&choix); }while(choix!=0 && choix!=1); }while(choix==1); puts("Bonne journée"); return 0; }
Si t'as des questions n'hésite pas.
Cdlt
Voila le début d'un programme fait en cours :
#include<stdio.h>
#include<math.h>
void main ()
{float A, B, C, delta, x1, x2;
printf("Entrer A : ");
scanf("%f", &A);
printf("Entrer B : ");
scanf("%f", &B);
printf("Entrer C : ");
scanf("%f", &C);
if(A==0)
{
if(B==0)
{if(C==0)
printf("Infinite de solution \n");
else printf ("impossible \n");
}
else { printf("Equiation de degré 1 \n");
x1=-C/B;
printf("Solution x=%6.1f \n", x1);
}
}
else {delta=B*B-4*A*C;
if(delta<0)
printf("racines complexes \n");
else if(delta==0)
{x1=-B/2/A;
printf("solution double x=%6.2f, \n", x1);
}
else {x1=(-B+sqrt(delta)/2/A);
printf("deux solutions , x1=%6.2f, \n", x1);
x2=(-B-sqrt(delta)/2/A);
printf("x2=%6.2f, \`n",x2);
}
}
}
Voila le programme que l'on a fait pour la résolution d'une équation du second degré;, mais comme tu peux le constater, ca ne ressemble pas tellement au programme que tu as modifié, non ?
#include<stdio.h>
#include<math.h>
void main ()
{float A, B, C, delta, x1, x2;
printf("Entrer A : ");
scanf("%f", &A);
printf("Entrer B : ");
scanf("%f", &B);
printf("Entrer C : ");
scanf("%f", &C);
if(A==0)
{
if(B==0)
{if(C==0)
printf("Infinite de solution \n");
else printf ("impossible \n");
}
else { printf("Equiation de degré 1 \n");
x1=-C/B;
printf("Solution x=%6.1f \n", x1);
}
}
else {delta=B*B-4*A*C;
if(delta<0)
printf("racines complexes \n");
else if(delta==0)
{x1=-B/2/A;
printf("solution double x=%6.2f, \n", x1);
}
else {x1=(-B+sqrt(delta)/2/A);
printf("deux solutions , x1=%6.2f, \n", x1);
x2=(-B-sqrt(delta)/2/A);
printf("x2=%6.2f, \`n",x2);
}
}
}
Voila le programme que l'on a fait pour la résolution d'une équation du second degré;, mais comme tu peux le constater, ca ne ressemble pas tellement au programme que tu as modifié, non ?
Salut,
Non le programme que j'ai modifié était sur ta version qui contenait des fautes.
Là, le programme que tu as donné est parfait. Un seul truc à dire (oui, il faut bien :d),
void main() n'est pas top. Il faut utiliser int main() et de faire return 0; en dernière ligne.
Remarque : si tu postes un nouveau programme, n'oublie pas de l'encapsuler entre deux balises code (bouton à droite de souligner), c'est plus lisible ;)
PS : dans le dernier printf, il y a un backquote qui s'est immiscé entre le backslash et le n. Ca doit être une erreur d'inattention ;)
Cdlt
Non le programme que j'ai modifié était sur ta version qui contenait des fautes.
Là, le programme que tu as donné est parfait. Un seul truc à dire (oui, il faut bien :d),
void main() n'est pas top. Il faut utiliser int main() et de faire return 0; en dernière ligne.
Remarque : si tu postes un nouveau programme, n'oublie pas de l'encapsuler entre deux balises code (bouton à droite de souligner), c'est plus lisible ;)
PS : dans le dernier printf, il y a un backquote qui s'est immiscé entre le backslash et le n. Ca doit être une erreur d'inattention ;)
Cdlt
En fait si, le but était de mettre le nom des départements mais bon, ca aurait été répétitifs. Alors j'ai fais comme ca avec seulement 4 départements et le nom du pays et de la région permet d'utiliser la boucle "Tant que".
Peux tu m'aider un peu, car il me semblait que mon programme était bon.
Tu dis que ton programme doit demander le numéro du département et sortir le nom du département. Ca ok, pas de souci. Mais je comprends pas ce que vient faire le nom du pays et de la région ?