Ciao a tutti!
mi scuso per il disturbo.. sono alle prese con questo esercizio. ho scritto il codice però alla fine non è quello che l'esercizio chiede.
ecco il testo dell'esercizio:
Nel file croceromana.c implementare la definizione della funzione:
extern void croceromana(FILE *f, unsigned char n);
la funzione deve scrivere sul file f (che viene passato già aperto in modalità tradotta e in scrittura) una croce romana, rappresentata con i simboli ASCII. Il parametro n indica la lunghezza del braccio superiore, mentre gli altri bracci saranno lunghi il doppio:
n = 1
I
--+--
|
|
circa dovrebbe venire così..
allora il codice che ho scritto è il seguente:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void croceromana(FILE *f, unsigned char n)
{
int i = 0;
int j = 0;
for (i = 0; i <= 3*n; i++)
{
if (i == n)
{
for (j = 0; j <= 4 * n; j++)
{
if (j == 2 * n)
fprintf(f, "+");
else
fprintf(f, "-");
}
}
if (i != n)
{
for (j = 0; j <= 4 * n; j++)
{
if (j < 2 * n)
fprintf(f, " ");
if (j == 2 * n)
{
fprintf(f, "|");
j = j + 1;
fprintf(f, "\n");
}
}
}
}
}
int main(void)
{
FILE *f;
f = fopen("croceromana.txt", "wt");
if (f == NULL)
return -1;
croceromana(f, 6);
fclose(f);
}
allora la croce mi appare, fatta bene.. però lungo il braccio orizzontale della croce mi appare uno | di troppo.. e lungo il braccio verticale uno | di meno..
in questo modo..
|
|
|
|
|
|
------------+------------ |
|
|
|
|
|
|
|
|
|
|
|
mi sapreste dire dove sbaglio??
nell'attesa di una risposta, vi ringrazio anticipatamente.