Convertir un entier en une chaîne de caractères

Fermé
lmc-3 Messages postés 574 Date d'inscription samedi 13 juin 2015 Statut Membre Dernière intervention 18 février 2023 - 25 oct. 2015 à 07:31
Bonjour,
débutant en langage c j'aimerais savoir comment afficher des noms selon la valeur numérique qui leur est attribuée, voici mon programme pour mieux comprendre ma question:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main(int argc, char *argv[])
{
    int Boucle = 0;
    do
    {
    int De;
             const int MAX = 20, MIN = 1;
             srand(time(NULL));
             De = (rand() % (MAX - MIN + 1)) + MIN;
    int NbPersonages;
    char Personage[100];
    char*PointeurPersonage;
    int INI[100], PV[100], BBA[100], CA[100], BMO[100], DMD[100];
    char Arme1[100], Arme2[100];
    int NbDe1[100], TypeDe1[100], Bonus1[100], CritiqueDe1[100], Critiquex1[100];
    int NbDe2[100], TypeDe2[100], Bonus2[100], CritiqueDe2[100], Critiquex2[100];
    int Numero;
    int*PointeurNumero;
        PointeurNumero=(int*)malloc(Numero*sizeof(int));
    int Passage;
    int*PointeurPassage;


    printf ("\t\t\t===Pathfinder===\n\n\n");
    printf ("\t\t\t===Personages===\n\n\n");


    printf("\n\n\nCombien de personages etes vous?\n");
    scanf("%d", &NbPersonages);

    for(Numero=0;Numero<NbPersonages;Numero++)
    {
    printf("\n\n\nPersonage %d\n\n", Numero+1);
    //Je ne sais pas comment allouer mémoire pour PointeurPersonage (char)
    scanf("%s", &Personage[Numero]);
    printf("\nInitiative\n");
    scanf("%d", &INI);
    int Initiative = 0;
        srand(time(NULL));
        Initiative = 1+rand() % (20 + 1);
    PointeurPassage=(int*)malloc(Passage*sizeof(int));
    Passage = Initiative + INI;
    printf("\nPV\n");
    scanf("%d", &PV[Numero]);
    printf("\nBBA (Bonus de Base a l'Attaque)\n");
    scanf("%d", &BBA[Numero]);
    printf("\nCA (Competence d'Armure)\n");
    scanf("%d", &CA[Numero]);
    printf("\nBMO (Bonus de Manoeuvre Offensive)\n");
    scanf("%d", &BMO[Numero]);
    printf("\nDMD (Bonus de Manoeuvre Defensive)\n");
    scanf("%d",& DMD[Numero]);
    printf("\nArme 1\n");
    scanf("%s", &Arme1[Numero]);
    scanf("\n\n%d", &NbDe1);
    printf ("d");
    scanf("%d", &TypeDe1[Numero]);
    printf ("+");
    scanf("%d", &Bonus1[Numero]);
    scanf("%d", &CritiqueDe1[Numero]);
    printf("x\n");
    scanf("%d", &Critiquex1[Numero]);
    printf("\nArme 2\n");
    scanf("%s", &Arme2[Numero]);
    scanf("\n\n%d", &NbDe2[Numero]);
    printf ("d");
    scanf("%d", &TypeDe2[Numero]);
    printf ("+");
    scanf("%d", &Bonus2[Numero]);
    scanf("%d", &CritiqueDe2[Numero]);
    printf("x\n");
    scanf("%d", &Critiquex2[Numero]);
    }



    printf ("\t\t\t===Pathfinder===\n\n\n");


    #include "tri_a_bulle.h"
    tri_a_bulle(PointeurPassage,Passage);



    printf ("\t\t\t===Combat===\n\n\n");




int i;
for(i=0;i<NbPersonages;i++)
{
    printf("\n%d: %s\n", i+1, PointeurPassage[i]); //C'est ici que ça coince...
}
system("PAUSE");
} while (Boucle =! 0);
}


Voici le tri_a_bulle.h:

#define TRUE 1
#define FALSE 0

void tri_a_bulle(int*t,int n)
{
int j =0;
int tmp =0;
int en_desordre =1;
while(en_desordre)
    {
        en_desordre = FALSE;

        for(j =0; j < n-1; j++)
        {
            if(t[j] > t[j+1])
            {
                tmp = t[j+1];
                t[j+1] = t[j];
                t[j] = tmp;
                en_desordre = TRUE;
            }
        }
    }
}

_______________________________________
J'aimerais afficher les noms des personnages en fonction de la somme Initiative+Ini (Passage) par ordre décroissant