[C] Problema letturastampa vettore

di il
5 risposte

[C] Problema letturastampa vettore

Praticamente devo produrre un programma che legge gli elementi di un array di dimensione n (con n letto da tastiera) e li stampa invertiti dall'ultimo al primo. Ci ho provato ma non continuo a capire dove sbaglio.
Ecco il codice:
#include <stdio.h>

int main(){
	int i,n;
	int elementi[i];
	
	printf("Inserisci grandezza vettore:");
	scanf("%d", &i);
for( n=0; n<i; n++ ){
printf("Elemento %d: ", n+1) ;
scanf("%d", &elementi[n]) ;
}
	printf("\tElementi al contrario\n");
	for(i=i-1; i>=0; i-- ){
printf("%d", elementi[i]) ;
}
	return 0;
}
Se io inserisco un numero maggiore di 6 da tastiera, me ne conta massimo 6, e poi non mi stampa il vettore al contrario, grazie in anticipo!

5 Risposte

  • Re: [C] Problema letturastampa vettore

    L'esecuzione delle linee in un programma C è sequenziale. Come fai ad indicare la lunghezza dell'array PRIMA di averla inserita da tastiera?
  • Re: [C] Problema letturastampa vettore

    Mi serve a sapere quanti elementi l'utente vuole inserire, e lo salvo anche come la grandezza dell'array.Non capisco sinceramente cosa continuo a sbagliare.
  • Re: [C] Problema letturastampa vettore

    Scusa, ma hai letto la mia risposta? Cosa non compredi?

    All'inizio del programma i non sai quanto vale ... quindi la dichiarazione la devi fare dopo la scanf ... mi sembrava chiaro.

    Quindi NON

    int elementi;
    scanf...

    ma

    scanf..
    int elementi;
  • Re: [C] Problema letturastampa vettore

    Scusa per la mia ignoranza ma a scuola mi era stato detto di dichiare sempre le variabile all' inizio, grazie mille!
  • Re: [C] Problema letturastampa vettore

    Sì se la dimensione è costante (ovvero se utilizzi una #define e un valore costante N). Ma dato che utilizzi una variabile, hai due scelte: usare i VLA (se il compilatore li supporta, come fai tu) oppure l'allocazione dinamica con puntatore e malloc.
Devi accedere o registrarti per scrivere nel forum
5 risposte