Aiuto programmino in C

di il
12 risposte

Aiuto programmino in C

Buonasera a tutti, sono una principiante, ho iniziato a programmare da unn mesetto e mi trovo a dover svolgere questa consegna: "Si implementi una funzione che, dati in input i puntatori alla testa di due array di caratteri e un numero intero che rappresenta la dimensione del primo, modifichi il secondo array, inserendo gli stessi caratteri contenuti nel primo, ma in ordine inverso.
Si scriva quindi un programma C per verificare il corretto funzionamento della funzione. Il programma chiederà all’utente di immettere da tastiera una serie di caratteri e li stamperà in ordine inverso."
Qualcuno sa dirmi perchè così mi escono sempre solo le lettere inserite da tastiera nell'array b?
Io ho scritto questo, ma ormai ho modificato e rimodificato il codice tante di quelle volte che non ci capisco più niente!

#include<stdio.h>

int d, i;
void f(char* px, char* py, int d)
{
char x[d], y[d];
for (i=0; i>d; i++)
{
*(py+i)= x[d-i-1];
printf(" %c", *(py+i));
}

}

int main()
{
char a[d], b[d];
char* pa= &a[0];
char* pb= &b[0];
printf("Inserire la dimensione da assegnare agli array:\n");
scanf("%d", &d);
for (i=0; i<d; i++)
{
printf("Inserire un carattere da inserire nell'array a:\n");
scanf("\n%c", &a);
}
for (i=0; i<d; i++)
{
printf("Inserire un carattere da inserire nell'array b:\n");
scanf("\n%c", &b);
}

f(pa, pb, d);

return 0;
}

12 Risposte

  • Re: Aiuto programmino in C

    Sei riuscito a compilarlo? Dalla tua descrizione del problema sembrerebbe che hai eseguito questo codice; in realtà espressioni del tipo
    char x[d]; // d variabile e non costante
    non sono accettate!
    Ti consiglio di procedere a passi; inizia con lo scrivere una funzione che carica in input un array di dimensione massima nota (con una costante) e poi la stampi a video.
  • Re: Aiuto programmino in C

    Si si compilava, l'array funziona con argomento d perché d è messo in input da tastiera. Sono riuscita a farlo funzionare, avevo messo per distrazione i>d invece che i<d nel for della funzione e mettendo *(py+i)=*(px+(d-i-1)) nel for della funzione va! Anche se non so sinceramente perché assegnando il valore dell'array non andasse... Grazie mille comunque per avermi risposto
  • Re: Aiuto programmino in C

    Per curiosità, quale compilatore hai utilizzato?
  • Re: Aiuto programmino in C

    Sicuramente un compilatore che supporta lo standard C99 in cui sono permessi i VLA

    Molto probabilmente usa l'accoppiata DevC++/mingw che, tra le tante cose negative, hanno anche quella di permettere i VLA
  • Re: Aiuto programmino in C

    Uso quello che mi dicono di usare al corso che frequento...non ne so niente di queste cose, per compilare scrivo gcc - ecc sul terminale di ubuntu
  • Re: Aiuto programmino in C

    uso quello che mi dicono di usare...
    La programmazione non è la tua passione ...

    Comunque anche gcc permette i VLA

    http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.htm
  • Re: Aiuto programmino in C

    Ciao a tutti,

    nel cercare la soluzione a un problema (che a questo punto posterò perchè non trovo risposte
    già presenti sul forum) mi sono imbattuto in questo post.

    Anch'io ho iniziato da poco a programmare in C.

    Uso Dev-C++ , pensando che potesse andar bene, invece leggo commenti negativi.

    Di cosa si tratta ? VLA ?

    Devo cambiare IDE ? Devo passare a Visual Studio o ad altri ?

    Grazie
  • Re: Aiuto programmino in C

    Ragazzi vi conviene usare codeblocks... non per fare pubblicità, ma è un editor fantastico, per C
  • Re: Aiuto programmino in C

    È un IDE non solo un editor.

    Vanno bene Visual Studio e CodeBlocks
  • Re: Aiuto programmino in C

    Ottimo, grazie.

    Mha...curiosità.. per cosa stà VLA ?

    Grazie
  • Re: Aiuto programmino in C

    Array a Lunghezza Variabile
  • Re: Aiuto programmino in C

    Ma dai... ok, grazie

    Alla prossima.
Devi accedere o registrarti per scrivere nel forum
12 risposte