Aide urgente en c++
Bounty killah.............
-
pom -
pom -
Salut tout le monde .
..Voila j'ai un petit probleme a vous faire part , je ne suis malheureusement pas trop bon en programmation voila pkoi je vous fait appel , l'aide sera appreciée ! merci d'avance .
...Je dois faire un programme qui calcule la moyenne d'un etudiant en C++
..Voila ce que j'ai pu faire jusqu'a maintenant .
----------------------------------------------------------------------------
#include <iostream.h>
#include <stdio.h>
main()
{
char nom,prenom;
float tp1,tp2,tp3;
cout<< " bonjour entrez votre nom et prénom " ;
cin>>nom >>prenom;
cout<<" Entrez vos trois notes de travaux pratiques , elles doivent etre comprises entre (0 et 100 ).\n"
cin>>tp1>>tp2>>tp3;
if(tp1>=0&&tp1<=100)
{if(tp2>=0&&tp2<=100)
if(tp3>=0&&tp3<=100)
cout<<" Merci ! :votre moyenne est de "<<(tp1+tp2+tp3)/3<<endl;}
}}
---------------------------------------------------------------------------- Questions : pkoi mon programme ne lit pas mes trois tp(1,2,3) ? et comment fait-on un programme qui :
Arrive a lire trois nombres avec la condition que ces trois nombre soient entre( 0 et 100) et calcule la moyenne sans probleme ? Merci encore les gars , vous me sauvez la vie !
Besoin urgente d'aide , merci infiniment ! Bounty killah...........
..Voila j'ai un petit probleme a vous faire part , je ne suis malheureusement pas trop bon en programmation voila pkoi je vous fait appel , l'aide sera appreciée ! merci d'avance .
...Je dois faire un programme qui calcule la moyenne d'un etudiant en C++
..Voila ce que j'ai pu faire jusqu'a maintenant .
----------------------------------------------------------------------------
#include <iostream.h>
#include <stdio.h>
main()
{
char nom,prenom;
float tp1,tp2,tp3;
cout<< " bonjour entrez votre nom et prénom " ;
cin>>nom >>prenom;
cout<<" Entrez vos trois notes de travaux pratiques , elles doivent etre comprises entre (0 et 100 ).\n"
cin>>tp1>>tp2>>tp3;
if(tp1>=0&&tp1<=100)
{if(tp2>=0&&tp2<=100)
if(tp3>=0&&tp3<=100)
cout<<" Merci ! :votre moyenne est de "<<(tp1+tp2+tp3)/3<<endl;}
}}
---------------------------------------------------------------------------- Questions : pkoi mon programme ne lit pas mes trois tp(1,2,3) ? et comment fait-on un programme qui :
Arrive a lire trois nombres avec la condition que ces trois nombre soient entre( 0 et 100) et calcule la moyenne sans probleme ? Merci encore les gars , vous me sauvez la vie !
Besoin urgente d'aide , merci infiniment ! Bounty killah...........
6 réponses
-
Bonjour!
Je pense que tu devrais demander de rentrer leurs notes une par une... Comme pour le nom et le prénom d'ailleurs!
Sinon, le reste me semble bon! ;-)
Maily :-))))
Boumj'chtattrape -
Salut, ce qui plante est le fait que tu fais
char nom,prenom
un char est UN seul caractere, une string est une chaine de caractere.
donc il faut que tu fasses
char* nom;
char* prenom;
(un pointeur vers un char est une string)
Voici un prgramme qui devrait fonctionner :
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
char* nom;
char* prenom;
float tp1,tp2,tp3;
cout<<"bonjour entrez votre nom et prenom\n";
cin>>nom>>prenom;
cout<<" Entrez vos trois notes de travaux pratiques , elles doivent etre comprises entre (0 et 100 ).\n";
cin>>tp1;
while( (tp1<0) && (tp1>100) )
{
cout<<"erreur de saisie de tp1\nRecommencez\n";
cin>>tp1;
}
cin>>tp2;
while( (tp2<0) && (tp2>100) )
{
cout<<"erreur de saisie de tp2\nRecommencez\n";
cin>>tp2;
}
cin>>tp3;
while( (tp3<0) && (tp3>100) )
{
cout<<"erreur de saisie de tp3\nRecommencez\n";
cin>>tp3;
}
cout<<"Merci "<<prenom<<" "<<nom<<" ! Votre moyenne est de "<<(tp1+tp2+tp3)/3<<endl;
return 0;
}
Pom -
oups ! pardon, ce n'est pas
while( (tp1<0) && (tp1>100) )
mais
while( (tp1<0) || (tp1>100) )
mille excuses
pom-
...Salut Pom et merci encore pour ton aide ,le programme arrive a compiler , mais ...juste apres avoir entrez les nom et prenom ca me met ;
SEGMENTATION FAULT ! je ne sais pas ce que c'est et je n'arrive pas a comprendre pkoi , j'ai essayer pourtant de le remodeler , mais rien .
Essaies de le compiler ,et fais moi signe des que tu peux .
je te remercie encore pour ton aide , c'est apprecié !
-
-
...Milles merci Pom , tu me sauve la vie ! je suis toujours étonné de la facilité avec laquelle certaines personnes arrive faire de telles programmes ,
...Je vais l'essayer ! merci encore . -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut Bontykillah, salut Pom.
La "SEGMENTATION FAULT" est du à l'écriture des nom et prénom sur 2 variables mémoires NON ALLOUEES (erreur TRES classique en C/C++)
char* nom; // pas bon !!!
char* prenom; // pas bon !!!
soit
char* nom = new char [100];
char* prenom = new char [100];
// dans ce cas sgemntation fault seulement si l'utilisateur s'AMUSE à saisir un nom ou un prénom de + de 99 caractères
(oui 99 car 100 = 99 + 1, le 1 &tan,t le '\0' caractère de fi de chaine).
marvinrouge -
Hello!
En programmation, il faut toujours nettoyer derrière soi... donc si tu alloues de la mémoire comme suggéré par marvinrouge, n'oublie pas la désallouer quand tu n'en as plus besoin.
delete [] nom;
nom = NULL; // bonne pratique pour éviter de réutiliser une zone mémoire qui n'est plus allouée
Mais les bibliothèques standards c++ t'offrent des objets "string" qui se chargent de ces problèmes de gestion de mémoire à ta place. Il te suffit de déclarer tes variable "nom" et "prenom" comme ceci (et tu n'as même pas besoin de désallouer quoique ce soit):
std::string nom;
std::string prenom;