Probleme en c

Résolu
nana -  
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, voici mon programme qui doit calculer le prix de commande d'une voiture si le nombre de voiture est au moins 10, le prix est de 10000 mais si le nombre atteint au moins 15 c'est 9000, et si le nombre atteint au moins 25 c'est 8000 mais on ma logique utiliser n'est pas bonne, quand un nombre est atteint ne s'applique pas a toutes les voitures. quelqu'un pourrait m'aider scp
#include <stdlib.h>
#include <stdio.h>

void main (void)

{
int nombrevoiture,prixcommande1,prixcommande2,prixcommande3;

printf("entrez le nombre de voiture:");
scanf("%d",&nombrevoiture);













if (nombrevoiture <= 14)
{ prixcommande1 = nombrevoiture * 10000 + 1500;
printf("le prix est de %d",prixcommande1);
}
else
if (nombrevoiture <= 24)
{ prixcommande2= nombrevoiture * 9000 + 1500;

printf("le prix est de %d",prixcommande2);
}
else
if (nombrevoiture >= 25)
{ prixcommande3= nombrevoiture * 8000 + 1500;
printf("le prix est de %d",prixcommande3);
}

}

5 réponses

mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
... doit calculer le prix de commande d'une voiture si le nombre de voiture est au moins 10, le prix est de 10000 mais si le nombre atteint au moins 15 c'est 9000, et si le nombre atteint au moins 25 c'est 8000 ...

Je ne suis pas sûre d'avoir pleinement compris la manière dont le prix est calculé mais j'imagine que c'est N*cout_uniatire ou le cout_unitaire décroît avec N , auquel tu ajoutes 1500 en coût fixe. SI c'est bien ça tu peux t'inspirer de ce code :
// calcule le prix d'une voiture
#include <stdio.h>

int cout_unitaire(unsigned nb){
  if(nb >= 25) return 8000;
  // si je suis arrivée ici c'est qu'il y a moins de 25 véhicules
  else if(nb >= 15) return 9000;
  // si je suis arrivée ici c'est qu'il y a moins de 15 véhicules
  else if(nb >= 10) return 10000;
  // si je suis arrivée ici c'est qu'il y a moins de 10 véhicules

  // Ce cas surviendra quand nb < 10 (tu n'as pas donné le prix dans l'énoncé ?)
  fprintf(stderr,"prix unitaire non défini\n");
  return 0;
}

int main(){
  unsigned n;
  int prix;
  printf("nombre de véhicule ?");
  scanf("%i",&n);
  prix = n*cout_unitaire(n) + 1500;
  printf("prix = %d\n",prix);
  return 0;
}

Bonne chance
0
spidag
 
Bonjour,

#include <stdio.h>

int main () {
int nbvoiture,cout_unitaire;
printf("entrez le nombre de voiture : ");
scanf("%d",&nbvoiture);
if (nbvoiture<10) printf("desole pas de tarif pour cette quantite, 10 min\n");
else if (nbvoiture<15) printf("tarif pour %d voitures : %d\n",nbvoiture,nbvoiture*10000+1500);
else if (nbvoiture<25) printf("tarif pour %d voitures : %d\n",nbvoiture,nbvoiture*9000+1500);
else printf("tarif pour %d voitures : %d\n",nbvoiture,nbvoiture*8000+1500);
}
0
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Y a de l'echo :) (et il manque le return 0 en fin de main :p)
0
spidag
 
Bonjour,
le return dans le mail n'etait pas facultatif?
Ca fait longtemps que je n'ai pas codé en C ...
Puis je ne t'ai pas recopier, certes les 2 codes se ressemblent ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Bah non c'est pas facultatif, vu que tu as mis qu'elle retournait un int :) Si tu compiles ça tu prendras un warning.
Ne t'en fais pas ça ne me pose aucun problème d'être copiée, c'est juste que ta réponse faisait un peu doublon :p

Bonne chance
0