|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2002
Città: Mantova
Messaggi: 387
|
Problemi con C !
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! ![]() Qualcuno sa darmi una mano? ![]() Grazie... ciao! ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2001
Messaggi: 1205
|
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. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2002
Città: Mantova
Messaggi: 387
|
grazie mille per l'aiuto!!!
ce l'ho fatta! ![]() ciao e grazie! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:35.