Tom's Guide > Forum > Programmation > Probleme de programme
Mot :    Pseudo :           
 

Bonjour,
J'ai fait un programme pour calculer des pourcentage pour faire des sondages.
Je travaille sur DEV-C++, j'ai taper mon programme (je débute en programmation C++) le voicie:

#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
int effectif;
cout << "Entrez l'effectif :";
cin >> effectif;

int effectif totale;
cout << "Entrez l'effectif totale :";
cin >> effectif totale;


effectif totale = effectif / effectif totale * 100;


cout << "Voici le pourcentage :";
cout << effectif totale << endl;






system("PAUSE" );
return 0;
}



DEV-C++ me met que int effectif totale n'est pas bon, mais je trouve pas le prob. J'ai sans doute fait une grosse conneries, mais comme je débute j'essaye diver chose.
Alor aidez-moi et merci de vos repoonses. :-D

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Citation :

int effectif totale;


tu peux pas declarer une variable avec un espace dedans !

Répondre à Anonyme

tu as mis un espace dans son nom, on ne peut jamais mettre un espace dans un nom de variable, remplace le plutot par effectif_total

Répondre à MythTitans

Salut,

Peutre parceque t'as un espace dans le nom de ta variable (int effectif totale).

Essaye: int effectif_totale.

@++

edit: Grilled by MythTitans ;-)

Répondre à lucoz

je me disai aussi que c'était une grosse bétise, je vais essayer:
sa marche!!
merci de votre les gars!!
:-D

Répondre à Gouedy

Ebn faite sa ne marche pas :-?
j'ai reafit le calcule avec 89 comme effectif et 50 et il me met 100 :-(
tu pe m'aider ??

Répondre à Gouedy

Ben la, vite fais je dirais:

Il manque des paranthese:

effectif_totale = effectif /( effectif_totale * 100);

Essaye, mais bon, je repond vite ;-)

Edit: puis choisi un autre nom de variable pour le resultat.
effectif_totale c'est une partie des variables de ton calcul.
Ca marche, mais c'est pas tres clair, si tu veux reutiliser effectif_totale plus tard, ca te posera des prob.

Répondre à lucoz

Il y a encore un prob, le résultat ( pour mon programme) est de 0 au leiu de 178, i: y a un gors prob la nn ?? :-?

Répondre à Gouedy

oui, c'est normal

89 comme effectif et 50 comme effectif total, ca le fait pas trop.

Ce serait pas plutot, 89 total ?

En plus ta variable c'est du INT, donc (si je dis pas de conneries), pas de virgule pas de chiffre negatif.

Répondre à lucoz

comment faire pour avoir une virgule ?? mettre long ??
J'ai essayer avec 50 divisé par 2 et il me met encore 0, alor si 50 divisé par 2 multiplier par 100 sa fait 0 c'est un peu bizarre

Répondre à Gouedy

INT peut être negatif, par contre pas de virgule :)
[EDIT]declare tes variables en float

Répondre à Anonyme

ceest bon les gar, j'ai mis "double au lieu de int
merci!! :-D

Répondre à Gouedy

les gar, sa marche pa comme je veut :-( .
Au lieu de mettre 178 il me met 0.0178 c bizarre nn ??
Alor donez-mi encore un ptit coup de main merci!!

Répondre à Gouedy

Franchemet vs avez pas une reponse siouplait.
J'ai peur sans reponse (lol)

Répondre à Gouedy

Deja tu ne devrais pas utiliser effectif_totale 2 fois pour deux chose differente dans le code, ainsi je te conseille de créer une autre variable que tu pourrait nomer par exemple resultat , ton code sera plus lisible . Aussi je te conseille de déclarer toutes tes variable au debut du code pour eviter de te perdre, pour un simple programme comme celui-ci ça va mais quand tu feras des programme plus compliqués faudra t'organiser ^^. Ha oui avant que je n'oublie, il me semble IMPERATIF d'initialiser tes variables au debut pour eviter les erreurs, c'est tout bête d'initialiser si tu ne sais aps comment faire je t'explique :

au lieu de faire int effectif; tu fais int effectif = 0;

car quand tu alloue une cellule de memoire ( une variable donc ) le code utilise ce qu'on apelle la "RAM", cette RAM, pour simplifier, c'est une floppée de "cellule", qui sont identifiables pas 2 chose : leur valeur et leur adresse, les 2 paramètres sont representés par des nombres, l'adresse sert a savoir ou la variable se trouve dans la RAM, et la valeur sert savoir ce qu'elle vaut. Il est donc possible qu'un programme passer avant par la aie deja alloué en memoire une variable et que toi, dans ton programme tu la reutilise sans savoir qu'elle possede deja une valeur ( par exemple si tu vient de jouer à hl ² il est possible qu'elle continne le nombre de HP de gordon XD ) , ce qui dans ton programme ne pose pas vraiment de probleme car elle sera automatiquement effacée au moment meme ou ton programme executeras le " SIN ", mais on n'est jamais assez prudent et c'est une bonne habitude a prendre que d'initialiser ses variables ...

Sinon pour ton problème essaie de definir effectif en float, effectif_totale en float, et la variable que je t'es conseiller de rajouter, en double . Après modification ton code devrait ressembler à ça :


#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
float effectif = 0;
float effectif_totale = 0;
double resultat = 0;
cout << "Entrez l'effectif :";
cin >> effectif;


cout << "Entrez l'effectif totale :";
cin >> effectif_totale;

resultat = (effectif / effectif_totale) * 100;


cout << "Voici le pourcentage :";
cout << resultat << endl;






system("PAUSE" );
return 0;
}

voila ^^


PS : escusez moi, j'ai peur d'avoir fait un message un peu trop complet . Aussi j'ai tester le code que je t'ai donner, et celui-ci marche ^^.

Répondre à MrFreeman
Tom's Guide > Forum > Programmation > Probleme de programme
Aller à :

Il y a 1643 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens