voici un code qui marche très bien malgré le faite que le programme n'est pas terminé:
#include <stdio.h>
int main(void)
{
int somme, cinq_cent, deux_cent, cent, billet50, billet20,billet10, cinq, deux, un, centime50, centime20, centime10, centime5, centime2, centime1, reste;
puts("Entrez une somme");
scanf("%d", &somme);
cinq_cent = somme / 500; /* partage(division) la somme en billet de 500 */
reste = somme % 500; /* prend le reste du partage de la somme des billet de 500 */
deux_cent = reste / 200; /* le reste en le partage en billet de 200 */
reste = reste % 200; /* prend le reste du partage de la somme des billet de 200 */
cent = reste / 100; /* idem que le 1er calcul */
reste = reste % 100; /* idem que le 2 eme calcul */
billet50 = reste / 50;
reste = reste % 50;
billet20 = reste / 20;
reste = reste % 20;
billet10 = reste / 10;
reste = reste % 10;
cinq = reste / 5;
reste = reste % 5;
deux = reste / 2;
printf("la somme est de %d :", somme);
printf("\n%d billet(s) de 500 \n%d billet(s) de 200 \n%d billet(s) de 100 \n%d billet(s) de 50 \n%d billet(s) de 20 \n%d billet(s) de 10\
\n%d piece(s) de 5 \n%d piece(s) de 2", cinq_cent, deux_cent, cent, billet50, billet20, billet10, cinq, deux );
return 0;
}
mais le programme a des variables de centimes donc le type float serait le plus approprié, mais quand je met le type float voici ce qui se passe:
#include <stdio.h>
int main(void)
{
float somme, cinq_cent, deux_cent, cent, billet50, billet20,billet10, cinq, deux, un, centime50, centime20, centime10, centime5, centime2, centime1, reste;
puts("Entrez une somme");
scanf("%f", &somme);
cinq_cent = somme / 500; /* partage(division) la somme en billet de 500 */
reste = somme % 500; /* prend le reste du partage de la somme des billet de 500 */
deux_cent = reste / 200; /* le reste en le partage en billet de 200 */
reste = reste % 200; /* prend le reste du partage de la somme des billet de 200 */
cent = reste / 100; /* idem que le 1er calcul */
reste = reste % 100; /* idem que le 2 eme calcul */
billet50 = reste / 50;
reste = reste % 50;
billet20 = reste / 20;
reste = reste % 20;
billet10 = reste / 10;
reste = reste % 10;
cinq = reste / 5;
reste = reste % 5;
deux = reste / 2;
printf("la somme est de %f :", somme);
printf("\n%.2f billet(s) de 500 \n%.2f billet(s) de 200 \n%.2f billet(s) de 100 \n%.2f billet(s) de 50 \n%.2f billet(s) de 20 \n%.2f billet(s) de 10\
\n%.2f piece(s) de 5 \n%.2f piece(s) de 2", cinq_cent, deux_cent, cent, billet50, billet20, billet10, cinq, deux );
return 0;
}
et voici les erreur:
C:\Users\Anthony\Documents\test\main.c||In function `main':| C:\Users\Anthony\Documents\test\main.c|10|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|12|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|14|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|16|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|18|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|20|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|22|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|4|warning: unused variable `un'| C:\Users\Anthony\Documents\test\main.c|4|warning: unused variable `centime50'| C:\Users\Anthony\Documents\test\main.c|4|warning: unused variable `centime20'| C:\Users\Anthony\Documents\test\main.c|4|warning: unused variable `centime10'| C:\Users\Anthony\Documents\test\main.c|4|warning: unused variable `centime5'| C:\Users\Anthony\Documents\test\main.c|4|warning: unused variable `centime2'| C:\Users\Anthony\Documents\test\main.c|4|warning: unused variable `centime1'| ||=== Build finished: 7 errors, 7 warnings ===|
j'ai essayé de caster mais sa n'a fait que de baisser le nombre d'erreur:
#include <stdio.h>
int main(void)
{
float somme, cinq_cent, deux_cent, cent, billet50, billet20,billet10, cinq, deux, un, centime50, centime20, centime10, centime5, centime2, centime1, reste;
puts("Entrez une somme");
scanf("%f", &somme);
cinq_cent = (int)somme / 500; /* partage(division) la somme en billet de 500 */
reste = (int)somme % 500; /* prend le reste du partage de la somme des billet de 500 */
deux_cent = (int)reste / 200; /* le reste en le partage en billet de 200 */
reste = (int)reste % 200; /* prend le reste du partage de la somme des billet de 200 */
cent = (int)reste / 100; /* idem que le 1er calcul */
reste = (int)reste % 100; /* idem que le 2 eme calcul */
billet50 = (int)reste / 50;
reste = (int)reste % 50;
billet20 = (int)reste / 20;
reste = (int)reste % 20;
billet10 = (int)reste / 10;
reste = (int)reste % 10;
cinq = (int)reste / 5;
reste = (int)reste % 5;
deux = (int)reste / 2;
reste = (int)reste % 2;
un = (int)reste;
centime50 = reste / 0.50;
reste = (int)reste % 0.50;
centime20 = (int)reste / 0.20;
reste = (int)reste % 0.20;
centime10 = (int)reste / 0.10;
reste = (int)reste % 0.10;
centime5 = (int)reste / 0.05;
reste = (int)reste % 0.05;
centime2 = (int)reste / 0.02;
reste = (int)reste % 0.02;
centime1 = (int)reste / 0.01;
printf("la somme est de %f :", somme);
printf("\n%.2f billet(s) de 500 \n%.2f billet(s) de 200 \n%.2f billet(s) de 100 \n%.2f billet(s) de 50 \n%.2f billet(s) de 20 \n%.2f billet(s) de 10\
\n%.2f piece(s) de 5 \n%.2f piece(s) de 2 \n%.2f piece(s) de 1 \n%.2f piece(s) de 50 centime(s) \n%.2f piece(s) de 20 centime(s)\
\n%.2f piece(s) de 10 centime(s) \n%.2f piece(s) de 5 centime(s) \n%.2f piece(s) de 2 centime(s) \n%.2f piece(s) de 1 centime(s)", cinq_cent, deux_cent, cent, billet50, billet20, billet10, cinq, deux, un, centime50, centime20, centime10, centime5, centime2, centime1);
return 0;
}
erreur:
C:\Users\Anthony\Documents\test\main.c||In function `main':| C:\Users\Anthony\Documents\test\main.c|27|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|29|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|31|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|33|error: invalid operands to binary %| C:\Users\Anthony\Documents\test\main.c|35|error: invalid operands to binary %| ||=== Build finished: 5 errors, 0 warnings ===|
