Rechercher : dans
Par :

[C] Probleme affichage tableau caractères

Dernière réponse le 30 nov 2006 à 11:19:32 flop91, le 29 nov 2006 à 23:58:47 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un petit programme pour afficher un tableau de caractere 20*20 vide dont le contour est fait de #.

Je le compile tout va bien, mais quand la fenetre dos me l'affiche, j'ai une représentation en ligne du tableau.

Comment je peux lui donner un forme de carre? D'ou vient mon problème?
En esperant que je suis assez clair. Merci d'avance

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

void main (void)
{
int i;
int j;
char tableau[22][22];


for(i=0; i<22; i++)
{
for(j=0; j<22; j++)
{
tableau[i][j] = ' ';
}
}

for(i=0; i<22; i++)
{
tableau[i][0] = '#';
tableau[i][21] = '#';
}
for(j=0; j<22; j++)
{
tableau[0][j] = '#';
tableau[21][j] = '#';
}

for(i=0; i<22; i++)
{
for(j=0; j<22; j++)
{
printf("%c", tableau[i][j]);
}
}

}

Meilleures réponses pour « [C] Probleme affichage tableau caractères » dans :
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Langage C - Les tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...

1

kilian, le 30 nov 2006 à 01:08:00

Salut,

A la fin, après la fermeture de boucle de la ligne, mets un saut ligne:

 for(i=0; i<22; i++)
{
        for(j=0; j<22; j++)
        {
                printf("%c", tableau[i][j]);
         } 
         printf("\n");
}
..et le...le...enfin, non parce c'est...ya...quand...bah tu sais là le...

Répondre à kilian

2

mamiemando, le 30 nov 2006 à 09:21:40

Exact. Tu peux améliorer encore ton programme :

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

int main()
{
    unsigned int i;
    unsigned int j;
    const unsigned int imax=22,jmax=22;
    char tableau[imax][jmax];

    for(i=0; i<imax; ++i){
        for(j=0; j<jmax; ++j){
            tableau[i][j] = ' ';
        }
    }

    for(i=0; i<imax; ++i){
        tableau[i][0] = '#';
        tableau[i][jmax-1] = '#';
    }
    for(j=0; j<jmax; ++j){
        tableau[0][j] = '#';
        tableau[imax-1][j] = '#';
    }

    for(i=0; i<imax; ++i){
        for(j=0; j<jmax; ++j){
            printf("%c", tableau[i][j]);
        }
        printf("\n");
    }
    return 0;
}

Le imax et jmax rendent plus lisible le programme et permette de changer facilement les dimensions du tableau. Actuellement tu alloues de manière statique ton tableau 22*22 mais avec des malloc tu verras qu'il est facile de spécifier dynamiquement ses dimensions.

Attention à ne pas oublier les headers et à bien retourner le code d'éexecution dans ton main pour être standard.

Bonne chance

Répondre à mamiemando

3

flop91, le 30 nov 2006 à 09:40:37

Merci beaucoup à vous maintenant ca marche, ca faisait une journée que je galérais dessus!! Pas facile les petites astuces comme ca quand on débute :-).
Encore merci.

Répondre à flop91

4

 lami20j, le 30 nov 2006 à 11:19:32

Salut,

Pas facile les petites astuces comme ca quand on débute :-).

Pas difficile non plus :-)). Lit ce tuto Apprenez à programmer en C / C++ !, mais c'est vrai que pour Miss et Kilian c'est plus facile vu leur experience.

lami20j

Répondre à lami20j