PDA

Visualizza la versione completa : [C] array di char !?!?


sgent66
03-01-2009, 21:26
mi sto cimentando con il mio primo programma in C.
vorrei creare una matrice 3x3 di char da 1 carattere.
nel primo ciclo li inizializzo tutti a 'X', nel secondo li metto a video.

1) dove sbaglio ?
2) come si fa a indentare il codice quando posto il messaggio nel forum ?
3) il doppio cilclo di for i,j si puo' fare in un colpo unico in C ?

grazie infinite a chi mi puo' dare una mano !



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

char tris [3] [3];

int main()
{
int i, j, scelta;
for (i=0 ; i<3 ; i++)
{
for (j=0 ; j<3 ; j++)
{
tris [i] [j] = 'X';
}
}

system("cls");

for (i=0 ; i<3 ; i++)
{
printf (" %s | %s | %s \n", tris[i, 1], tris[i, 2], tris[i, 3]);
printf ("---+---+---\n");
}
system("pause");

return 0;

}


il risultato a video e' questo :
XXXXXX | XXX |
---+---+---
XXXXXX | XXX |
---+---+---
XXXXXX | XXX |
---+---+---

MItaly
03-01-2009, 21:52
1) Cosė ad occhio direi che devi correggere questa riga:


tris[i, 0], tris[i, 1], tris[i, 2]

2) Usando il tag
...
3) No.

sotoli
03-01-2009, 22:06
Inoltre quando devi stampare a video dei caratteri con la funzione printf, devi usare %c e non %s.
Poi, per selezionare il carettere j-esimo della riga i-esima dovresti scrivere tris[i][j].

sgent66
03-01-2009, 22:09
grazie Mitaly, quello era sicuramente un'errore ma nn funge ancora :(
ora il risultato č questo :

XXXXXXXXX | XXXXXX | XXX
---+---+---
XXXXXXXXX | XXXXXX | XXX
---+---+---
XXXXXXXXX | XXXXXX | XXX
---+---+---
Premere un tasto per continuare . . .

ri-posto codice indentato.



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

char tris [3] [3];

int main()
{
int i, j, scelta;

for (i=0 ; i<3 ; i++)
{
for (j=0 ; j<3 ; j++)
{
tris [i] [j] = 'X';
}
}

system("cls");

for (i=0 ; i<3 ; i++)
{
printf (" %s | %s | %s \n", tris[i, 0], tris[i, 1], tris[i, 2]);
printf ("---+---+---\n");
}
system("pause");

return 0;

} //

MItaly
03-01-2009, 22:16
printf (" %c | %c | %c \n", tris[i, 0], tris[i, 1], tris[i, 2]);

oregon
03-01-2009, 22:17
Ti avevano gia' detto di correggere la linea del printf ...


printf (" %c | %c | %c \n", tris[i][0], tris[i][1], tris[i][2]);

sgent66
03-01-2009, 22:17
grazie sotoli, con la tua modifica ora mi scrive :

► | ‼ | ▬
---+---+---
► | ‼ | ▬
---+---+---
► | ‼ | ▬
---+---+---
Premere un tasto per continuare . . .

:quote: :quote: :quote:

invece delle 'X' che ho inserito io mi trovo questi caratteri strani ... sembra che punti ad un indirizzo diverso da quello dove ci sono i valori dell'array ...

oregon
03-01-2009, 22:18
Leggi la mia ultima risposta ...

sgent66
03-01-2009, 22:25
grande oregon !
:D :D :D

ho anche aggiunto una firma al mio profilo, che ve ne pare ? :mame:

MItaly
03-01-2009, 22:45
Niente male, ma hai collaudato la mia? :mame:

Loading