Ciao, tranquillo nessuno è nato insegnato, pensa io fino a 6 mesi fa non sapevo nemmeno fare #include <stdio.h>.
Avvolte le cose semplici possono sembrare complicate ad un ragazzo che sta entrano per la prima volta nell ambito della programmazione.
Ma tranquillo la fame vien mangiando.
L'esercizio richiede l'applicazione di una terza variabile chiamata variabile di appoggio(non sono un programmatore ma sono un ragazzo al primo anno di programmazione universitaria, quindi sicuramente la mia soluzione verrà raffinata da chi ne sa di più di me).
Faccio prima ha postarti il codice, ho usato i sottoprogrammi e anche la programmazione non strutturata(unico punto di ingresso più punti di uscita).
Se hai dubbi contattami tranquillamente.
ah volevo solo dirti una cosa che a me hanno insegnato prima che scrivessi il programma HELLO WORD, "Anche l'occhio vuole la sua parte".
#include <stdio.h>
#define N 5
// Spazio per prototipi
void inserisciArray(int* arrayGenerico);
void visualizzaArray(int* arrayGenerico);
void invertiPosizioni(int* arrayGenerico);
int main(){
// in questo caso non uso il menu' di comandi ma renderebbe il codice molto più leggibile.
int collezione[N];
inserisciArray(collezione);
visualizzaArray(collezione);
printf("Sto invertendo gli elementi. [Attendete]\n");
invertiPosizioni(collezione);
printf("Collezione con elementi inverititi.\n");
visualizzaArray(collezione);
return 0;
}
void inserisciArray(int* arrayGenerico){ // int* arrayGenerico corrisponde a int arrayGenerico[dimenzione]
printf("Inserisci gli elementi.\n");
int i;
for(i = 0; i < N; i++){
scanf("%d", &arrayGenerico[i]);
}
return;
}
void visualizzaArray(int* arrayGenerico){ // int* arrayGenerico corrisponde a int arrayGenerico[dimenzione]
printf("Inserisci gli elementi.\n");
int i;
for(i = 0; i < N; i++){
printf("Elemento %d : %d\n", i + 1, arrayGenerico[i]);
}
return;
}
void invertiPosizioni(int* arrayGenerico){
int i, tmp;
int posCorrispondente = N - 1; // l'array va da 0 a n-1.
for(i = 0; i < N; i++){
if(i == posCorrispondente){
//printf("***** Sono uscito %d\n",i); stampa di debug.
return; // programmazione non strutturata.
}
tmp = arrayGenerico[i]; // per scambiare due valori devo copiare uno dei valori in una variabile temporane per non perdere dati.
arrayGenerico[i] = arrayGenerico[posCorrispondente]; // eseguo lo scambio pogiando il primo nell ultimo.(Prendo in considerazione il primo caso)
arrayGenerico[posCorrispondente] = tmp; // metto il valore della variabile temporanea al suo posto.
posCorrispondente--; //descremento la posizioneCorrispondente
printf("%d\n", posCorrispondente);
}
return;
}