PDA

Visualizza la versione completa : [C] ciclo for (nn trovo errore)


Metallica
15-06-2008, 23:23
Allora ho un codice, che deve stampare una griglia, ad esempio se io imposto come costanti che ci devono essere 16 celle e che il lato deve essere 4 celle, il programma dovrebbe stamparmi:


O O O O
O O O O
O O O O
O O O O


Semplice no? Il mio codice questo:


#define N_CELLE 16
#define LATO 4
#define NONOTA 'O'

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>

void init(char *array);
void print(char *array);

int main()
{
char array[N_CELLE];
init(array);
write(STDOUT_FILENO, "\n", 1);
print(array);
write(STDOUT_FILENO, "\n", 1);
}

void init(char *array)
{
int i, k;
for (i = 0; i < N_CELLE; i++)
{
array[i] = NONOTA;
}
}

void print(char *array)
{
int i,
k = 0;

for (i = 0; i < N_CELLE; i++)
{
if (k < LATO)
{
write(STDOUT_FILENO, &array[i], 1);
k++;
}
else
{
write(STDOUT_FILENO, "\n", 1);
k = 0;
}
}
}



Sembra corretto, ma tutto quello che stampa :


O O O O
O O O O
O O O O
O

Io sto programmando da stamattina ora sono esausto e non so pi come risolvere questo nuovo problema, voi vedete l'errore???

PS: Il codice completo e compilabile se volete provarlo!

oregon
15-06-2008, 23:39
Ecco la modifica da fare in grassetto ...


Originariamente inviato da Metallica


else
{
write(STDOUT_FILENO, "\n", 1);
k = 0;
i--;
}

Metallica
15-06-2008, 23:44
Originariamente inviato da oregon
Ecco la modifica da fare in grassetto ...
Giustoooo... quando va a capo non devo considerare il for!!!
Grazie.

oregon
15-06-2008, 23:47
Di nulla ...

Loading