PDA

View Full Version : Problemi con C !


MSTR
20-10-2003, 18:08
Ciao ragazzi!
Devo fare una funzione in C che mi formatti un testo in ingresso invertendo le righe a triple (la terza diventa la prima e la prima diventa la terza; la sesta diventa la quarta e la quarta diventa la sesta; ...)

Sto diventando matto! Non ci riesco! :muro:

Qualcuno sa darmi una mano? :ave:


Grazie... ciao! ;)

Gibbus
21-10-2003, 08:09
Spero di aver interpretato bene quale sia il problema.
Dovresti creare, per esempio, un array di puntatori a char, ognuno dei quali punta ad una stringa: quindi ogni stringa rappresenta una riga. La funzione che svolge il lavoro scambia semplicemente i puntatori.

# define MAX 80 /* num. di elementi dell'array di puntatori */
# define LUNGH 81 /* ogni stringa contiene non piu' di 80 caratteri */

void Scambia(char *[], int, int); /* dich. di funzione */

int main()
{
char *array[MAX]; /* array di MAX puntatori a char */
int gap, N; /* gap è la distanza tra le righe da scambiare */
...
Scambia(array, N, gap); /* chiamata di funzione */
...
return 0;
}



void Scambia(char *a[], int n, int g)
{
int i;
char *temp; /* puntatore temporaneo a char*/

for(i=0; i<n-g; i+=g+1)
{
temp=a[i];
a[i]=a[i+g];
a[i+g]=temp;
}

return;
}


Nel tuo caso, la variabile gap vale 2: terza riga - prima riga = 2
sesta riga - quarta riga = 2, etc.

MSTR
23-10-2003, 00:45
grazie mille per l'aiuto!!!

ce l'ho fatta! :winner:

ciao e grazie!