55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/* Affiche une table de multiplication */
|
||
#include <stdio.h>
|
||
|
||
void afficherDansBase(int nombre, int base) {
|
||
int a, b, c; // Chiffres
|
||
c = nombre % base;
|
||
nombre = nombre / base;
|
||
if (nombre == 0) {
|
||
printf(" %x", c);
|
||
return;
|
||
}
|
||
b = nombre % base;
|
||
nombre = nombre / base;
|
||
if (nombre == 0) {
|
||
printf(" %x%x", b, c);
|
||
return;
|
||
}
|
||
a = nombre % base;
|
||
printf("%x%x%x", a, b, c);
|
||
return;
|
||
}
|
||
|
||
int main() {
|
||
int b, x, y;
|
||
int const w = 3; // Taille intérieure d'une case
|
||
printf("Quelle base ?\n");
|
||
scanf("%d", &b);
|
||
if (b < 2 || b > 16) {
|
||
printf("La base doit être comprise entre 2 et 16\n");
|
||
return 2;
|
||
}
|
||
printf("X×Y");
|
||
for (x = 0; x <= b; x++) {
|
||
printf("│");
|
||
afficherDansBase(x, b);
|
||
}
|
||
for (y = 0; y <= b; y++) {
|
||
// Dessine une ligne
|
||
printf("\n───");
|
||
for (x = 0; x <= b; x++) {
|
||
printf("┼───");
|
||
}
|
||
printf("\n");
|
||
|
||
afficherDansBase(y, b);
|
||
for (x = 0; x <= b; x++) {
|
||
printf("│");
|
||
afficherDansBase(x*y, b);
|
||
}
|
||
}
|
||
printf("\n");
|
||
|
||
return 0;
|
||
}
|