Probleme pour effectuer N traitements

Résolu
le0duprogramme Messages postés 5 Date d'inscription dimanche 17 octobre 2010 Statut Membre Dernière intervention 23 janvier 2011 - 22 janv. 2011 à 16:57
le0duprogramme Messages postés 5 Date d'inscription dimanche 17 octobre 2010 Statut Membre Dernière intervention 23 janvier 2011 - 23 janv. 2011 à 12:57
Bonjour à tous ,
J'ai fait un algo qui effectue le prix d'un patient pour un séjour en fonction des prestations qu'il à choisit. Mon problème est de le faire pour X patients.
J'ai donc utilisé un TANT QUE mais mon algo tourne indéfiniment sans s'arrêter.
Si quelqu'un à une idée !!

voici le code

#include
#include<stdio.h>

void main(void)

{

int prest1,prest2,prest3,px1prest,px2prest,px3prest,nbrechbre,i,duree,codeprest,N,var,X;
float tarifchbre,coutchbre,tarifprest,coutsej;


Cls();

prest1=1;
prest2=2 ;
prest3=3;

px1prest=5;
px2prest=10;
px3prest=15;


printf("combien de patients voulez vous traiter?: \n ");
scanf("%i",&X);

while(var>=X)
{


printf("combien de chambres pour ce patient?: \n ");
scanf("%i",&N);

coutchbre=0;
coutsej=0;

for (i=1;i<=N; i++)
{
printf("quel est le tarif journalier de la chambre?: \n ");
scanf("%f",&tarifchbre);

printf("quelle durée?: \n ");
scanf("%i",&duree);

printf("quel est le code prestation choisie?: \n ");
scanf("%i",&codeprest);

if (codeprest=prest1 )
{
tarifprest=px1prest;
}

if (codeprest=prest2)
{
tarifprest=px2prest;
}

if( codeprest=prest3 )
{
tarifprest=px3prest;
}

coutchbre=((tarifchbre + tarifprest)*duree);
coutsej=coutsej+coutchbre;


}

printf("Le cout de sejour de ce patient est de: \n %f",coutsej);
}




var=var+1;
}


merci !!

4 réponses

moumouteb Messages postés 192 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 28 février 2011 10
23 janv. 2011 à 12:53
Bonjour,
Je ne pense pas que ton compilateur s'en rende compte. As-tu tester avec while(X>=var)?


----------------------------------------------
Thiméo Soutien Scolaire : logiciel de soutien scolaire libre et gratuit
3
le0duprogramme Messages postés 5 Date d'inscription dimanche 17 octobre 2010 Statut Membre Dernière intervention 23 janvier 2011
23 janv. 2011 à 12:57
Oui j'ai essayé avec les deux solutions que vous m'avez proposé.
3
moumouteb Messages postés 192 Date d'inscription dimanche 16 janvier 2005 Statut Membre Dernière intervention 28 février 2011 10
22 janv. 2011 à 18:18
Bonjour,

Si j'ai bien compris ce que tu fais : tu fais saisir le nombre de patient à traiter dans X et puis tu comptes le nombre de patients traités avec var.

Pour compter le nombre de patient, il faut partir de zéro donc initialise var à 0 (var=0; avant while).
Et puis pour comparer les nombres ce sera : continuer à traiter les clients tant que le nombre de client à traiter (X) est supérieur au nombre de clients effectivement traités (var) soit while(X>=var).

Je pense que ces corrections devraient améliorer les choses.

De plus une boucle for(int var=0;var<=X;i++) serait peut être plus adapté et te fait penser à faire toutes les initialisations.

J'espère t'avoir aidé.


----------------------------------------------
Thiméo Soutien Scolaire : logiciel de soutien scolaire libre et gratuit
0
le0duprogramme Messages postés 5 Date d'inscription dimanche 17 octobre 2010 Statut Membre Dernière intervention 23 janvier 2011
23 janv. 2011 à 11:36
Merci de ta réponse. Effectivement l'initialisation de var à 0 était une bonne remarque.Malgré tout mon programme tourne indéfiniment .Je vais continuer dde chercher . Je ne pense pas que la boucle soit ouverte car sinon j'aurais un problème lors de la compilation.
En tous cas je prends l'idée pour l'initialisation :)
0
Rejoignez-nous