Bonjour a tous, je suis en premiere année de MASS et j'apprend le langage c.
J'ai tapé un programme qui permet de convertir un nombre que l'on rentre en une base que l'on entre aussi.

Par exemble 10 en base 2 s'écrit : 1010 .
Ou 128362 en base 16 s'écrit 1F56A.

J'ai programmé le code, mais lors de la compilation, un message d'erreur me dit qu'il y a un probleme avecc un pointeur je ne sais plus exactement ce que c'est.

Le programme doit seulement comporter des boucles et des tableaux. Pas de fonctions ni de pointeurs car on les a pas encore énormément abordés.

Voici le programme :



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h> 
main() 
{ 
  int tab[64], i, nbretoconvert, base, a, nb, final; 
  char basedigits[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 
  i=0; 
             // Declaration des bases de O à 16. 
 
  printf ("Entrez le nombre à convertir.\n"); 
  scanf ("%i", &nbretoconvert); 
  printf ("Entrez une base.\n"); 
  scanf ("%i", &a); 
 
  if (a<=1) 
     printf ("Entrez une base > 1\n"); 
  else 
     a = base; 
 
                 // Demande de nombre. 
 
   do{ 
      tab[i] = nbretoconvert % base;   // on met le reste de la divison dans le tableau. 
       i++; 
       nbretoconvert = nbretoconvert/base;  // le nouveau nombre est le reste de la divison. 
       } 
    while (nbretoconvert != 0);     // on utilise do...while pour que le nombre 0 ait une base. 
 
                // Pour afficher le résultat dans le sens inverse 
 
     i = i-1;    // car apres la boucle, i vaut le nombre de chiffre du modulo + 1. 
     printf ("Le nombre converti est :\n"); 
     while (i>= 0){ 
        nb[i] = final; 
        printf ("c", basedigits[final]); 
     } 
}


L'indentation ne prend pas sur le site.
Pourriez vous s'il vous plait me dire ce qui ne va pas et me dire ce qu'il faudrait faire pour faire fonctionner le programme?

Merci d'avance.