Il primo passo che mi viene in mente è questo, sono un po arrugginito con il C, mi dite se come sintassi ho messo troppi strafalcioni.
p.s. compilato con borland C, potrebbe non essere rispettoso degli ultimi standard.
[CODE]
#include <stdio.h>
#include <stdlib.h>
class TMIA
{
private:
int quanti;
int *buffer;
public:
void init(int n);
void inserisci(int pos,int n);
int leggi(int n);
void done();
void inverti ();
void elenco ();
};
int TMIA::leggi(int n)
{
return buffer[n];
}
void TMIA::init(int n)
{
quanti=n;
buffer=(int*)calloc(n, sizeof(int));
}
void TMIA::done()
{
free(buffer);
}
void TMIA::inserisci(int pos,int n)
{
buffer[pos]=n;
}
void TMIA::inverti ()
{
int n1,n2, c1;
for (c1=0; c1<(quanti/2); c1++)
{
n1 = leggi(c1);
n2 = leggi(quanti-c1-1);
inserisci(c1,n2);
inserisci(quanti-c1-1,n1);
}
}
void TMIA::elenco ()
{
int c1;
for (c1=0; c1<quanti; c1++)
{
printf ("%d) %d\n", c1+1, leggi(c1));
}
}
int main ()
{
int num, c1, quanti;
TMIA mia;
printf ("Quante elementi vuoi inserire?");
scanf ("%d", &quanti);
mia.init(quanti);
for (c1=0; c1<quanti; c1++)
{
printf ("Inserisci il valore n.%d ", c1+1);
scanf ("%d", &num);
mia.inserisci(c1,num);
}
printf ("Gli elementi sono inseriti in questo ordine:\n");
mia.elenco();
mia.inverti();
printf ("Ora gli elementi sono inseriti in questo ordine:\n");
mia.elenco();
system ("pause");
return 0;
}