Besoin aide pour programme .cpp
Résolu/Fermé
A voir également:
- Besoin aide pour programme .cpp
- Programme demarrage windows 10 - Guide
- Dev cpp - Télécharger - Langages
- Désinstaller programme windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 840
23 nov. 2008 à 21:14
23 nov. 2008 à 21:14
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 840
23 nov. 2008 à 22:09
23 nov. 2008 à 22:09
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 ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 840
24 nov. 2008 à 13:16
24 nov. 2008 à 13:16
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
23 nov. 2008 à 21:26
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.
23 nov. 2008 à 21:33
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 ?
23 nov. 2008 à 21:41