[C++] cin - entrée d'un int
Fermé
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
-
22 janv. 2010 à 23:04
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 23 janv. 2010 à 14:29
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 23 janv. 2010 à 14:29
A voir également:
- [C++] cin - entrée d'un int
- Afpa tests niveau 3 d'entrée en formation : français, maths, logique - Forum Études / Formation High-Tech
- Firefox point d'entrée introuvable - Forum Mozilla Firefox
- Entree audio - Forum Windows
- Test d'entrée formation secrétaire comptable greta - Forum Windows
- Tableau à triple entrée - Forum Excel
2 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
23 janv. 2010 à 00:13
23 janv. 2010 à 00:13
1) tu ne calcules pas les heures
2) minutes n'est pas modifié car l'argument que tu passes dans ta fonction est passé, en C++, par valeur.
Pour etre plus précis, le m dans ta fonction est une variable locale crée dans la fonction, et elle prend une copie de la valeur que tu donnes dans le main
minutesToHeuresMinutes(minutes);
m va être une variable locale qui contient la valeur de minutes, mais c'est une autre variable.
donc minutes n'est pas modifiée et vaut toujours 0 après la fonction.
Si tu veux une fonction qui modifie son argument, il faut que tu passes ta variable par référence.
Ceci se fait à l'aide de l'esperluette " & " dans la déclaration (et le prototype) de la fonction:
void minutesToHeuresMinutes(int& m)
2) minutes n'est pas modifié car l'argument que tu passes dans ta fonction est passé, en C++, par valeur.
Pour etre plus précis, le m dans ta fonction est une variable locale crée dans la fonction, et elle prend une copie de la valeur que tu donnes dans le main
minutesToHeuresMinutes(minutes);
m va être une variable locale qui contient la valeur de minutes, mais c'est une autre variable.
donc minutes n'est pas modifiée et vaut toujours 0 après la fonction.
Si tu veux une fonction qui modifie son argument, il faut que tu passes ta variable par référence.
Ceci se fait à l'aide de l'esperluette " & " dans la déclaration (et le prototype) de la fonction:
void minutesToHeuresMinutes(int& m)
#include<iostream>
using namespace std;
int transformer_min_hr (int m)
{ int h ;
h = m/60;
m = m%60;
cout<<"le temps est"<<h<<"h."<<m<<"min"<<endl;
}
int main ()
{
int m;
cout<<"saisir votre temps en minutes"<<endl;
cin>>m;
transformer_min_hr (m);
system("pause");
return 0;
}
using namespace std;
int transformer_min_hr (int m)
{ int h ;
h = m/60;
m = m%60;
cout<<"le temps est"<<h<<"h."<<m<<"min"<<endl;
}
int main ()
{
int m;
cout<<"saisir votre temps en minutes"<<endl;
cin>>m;
transformer_min_hr (m);
system("pause");
return 0;
}
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
23 janv. 2010 à 14:29
23 janv. 2010 à 14:29
bonjour,
votre code est incorrect.
votre code est incorrect.