Probleme-java
sim0na
Messages postés
17
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
salut,
g un probleme d programmation l'ennonee demande 1 prog ki rend la monnaie a un client en calculant et affichant le nbr minimal d pieces {1,2,5,10,20,50,100,200} correspondant a 1 montant donnee g fai 1 ptit prog mais ca fonctionne pas et j sai pa l'erreur ou si vous avez une idee ....
merci d'avance
import java.util.Scanner;
public class test_tab {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int[] tab= {1,2,5,10,20,50,100,200};
int r=0;
System.out.println("tapez le montant");
int montant=sc.nextInt();
for (int i=1;i<=tab.length;i++){
while(montant<=tab[i]){
int q=montant/tab[i];
r=montant-(q*tab[i]);
System.out.println(" "+q+"pieces de"+tab[i]);
}
montant=r;
i++;
}
}
}
g un probleme d programmation l'ennonee demande 1 prog ki rend la monnaie a un client en calculant et affichant le nbr minimal d pieces {1,2,5,10,20,50,100,200} correspondant a 1 montant donnee g fai 1 ptit prog mais ca fonctionne pas et j sai pa l'erreur ou si vous avez une idee ....
merci d'avance
import java.util.Scanner;
public class test_tab {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int[] tab= {1,2,5,10,20,50,100,200};
int r=0;
System.out.println("tapez le montant");
int montant=sc.nextInt();
for (int i=1;i<=tab.length;i++){
while(montant<=tab[i]){
int q=montant/tab[i];
r=montant-(q*tab[i]);
System.out.println(" "+q+"pieces de"+tab[i]);
}
montant=r;
i++;
}
}
}
A voir également:
- Probleme-java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
2 réponses
J'ai noté une petite erreur :
Plus loin tu fait
Qui est inutile car le for le fait deja tout seul
En enfin
Voila, sa fait longtemps que j'ai pas fait de java ^^ alors il est possible qu'il reste d'autre erreurs
for (int i=1;i<=tab.length;i++){
// A changer en
for (int i=0; i < tab.length; i++){
Plus loin tu fait
i++;
Qui est inutile car le for le fait deja tout seul
En enfin
int q = montant / tab[i]; // A changer en int q = (int) (montant / tab[i]);
Voila, sa fait longtemps que j'ai pas fait de java ^^ alors il est possible qu'il reste d'autre erreurs
Salut,
Voilà ce que je pense que l'on veut faire:
-entrer le montant à payer
-entrer le montant recu du client
-calculer le montant à rendre
-et calculer les pièces (ou billets) à rendre en fonction de ce montant à rendre
Pour rendre le nombre minimal de pieces à l'aide du tableau >>> {1,2,5,10,20,50,100,200} je propose ceci:
C'est un exemple (premier jet) certainement améliorable et non le seul...
Cordialement,
Dan
Voilà ce que je pense que l'on veut faire:
-entrer le montant à payer
-entrer le montant recu du client
-calculer le montant à rendre
-et calculer les pièces (ou billets) à rendre en fonction de ce montant à rendre
Pour rendre le nombre minimal de pieces à l'aide du tableau >>> {1,2,5,10,20,50,100,200} je propose ceci:
import java.util.Scanner;
public class test_tab
{
public static void main(String[] args)
{
Scanner sc=new Scanner (System.in);
int[] tabDispose = {1,2,5,10,20,50,100,200}; // les pieces (ou billets) dont on dispose
int[] tabRendre = new int[20]; // les pieces a rendre
int montantRecu = 0;
int montantDu = 0;
int montantArendre = 0;
boolean encore1 = true;
boolean encore2 = true;
int r=0;
while(encore1)
{
encore2 = true;
System.out.print("\ntapez le montant a payer (ou 0 pour terminer): ");
montantDu = sc.nextInt();
if(montantDu == 0)
{
System.out.println("\n\nF I N");
encore1 = false;
return;
}
while(encore2)
{
encore2 = false;
System.out.print("tapez le montant recu: ");
montantRecu = sc.nextInt();
montantArendre = montantRecu - montantDu;
if(montantArendre == 0)
break;
if(montantArendre < 0)
encore2 = true;
}
System.out.println("Montant a rendre: " + montantArendre);
//{1,2,5,10,20,50,100,200} // pieces possibles
int i1Sv = 0;
for (int i = tabDispose.length -1; i > -1; i--) // on commence par la fin du tableau
{
if(tabDispose[i] <= montantArendre)
{
for(int i1 = i1Sv; i1<tabRendre.length; i1++)
{
tabRendre[i1] = tabDispose[i]; // on range dans le tableau tabRendre qui servira à afficher
// le résultat
montantArendre-= tabDispose[i];
if(montantArendre == 0)
{
break;
}
else
{
i = tabDispose.length;
i1Sv = (i1 +1);
break;
}
}
}
if(montantArendre == 0)
{
break;
}
}
for(int i1 = 0; i1<tabRendre.length;i1++)
{
if(tabRendre[i1] > 0)
System.out.println("\nPiece a rendre: " + tabRendre[i1]);
}
encore1 = true;
encore2 = true;
i1Sv = 0;
for(int i1 = 0; i1<tabRendre.length;i1++)
{
tabRendre[i1] = 0;
}
}
}
}
C'est un exemple (premier jet) certainement améliorable et non le seul...
Cordialement,
Dan