Buon giorno a tutti. Ho scritto un programma in c per ordinare gli elementi di un vettore inserito dall'utente. Poichè Utilizzo il C da poco(non ne conosco altri) vorrei sapere il modo in cui è gestita la memoria in questo programma...Io sono convinto sia gestita in modo orribile
chiedo a voi qualche suggerimento per gestirla in maniera ottimale..magari utilizzando puntatori o qualcosa di simile. Chiedo a voi esperti grazie mille in anticipo.
Ecco il sorgente
#include <stdio.h>
#include <string.h>
# define dmax 30
void ordinamento_vett(char v[],int num)
{
int n;
int i;
char t;
for (n=0;n<=num;n++) // se ho x cifre da ordinare servono x-1 "for" per ordinarlo// //corretamente//
{
for(i=0;i<num;i++)
{
if(v[i]>v[i+1])
{
t=v[i];
v[i]=v[i+1];
v[i+1]=t;
}
}
}
}
void stampa_normale(char v[])
{
int k=0;
printf("\t il vettore da te inserito è: ");
for(;k<dmax;k++)
{
printf("%2c",v[k]);
}
printf("\n");
}
void stampa_ordinato(char v[])
{
int j;
printf("\til vettore ordinato correttamente è:");
for(j=0;j<=dmax;j++)
{
printf("%2c",v[j]);
}
printf("\n");
}
int main()
{
int num;
char v[dmax];
printf("\tinserisci vettore da ordinare(lettere a-z e numeri 0-9)\n");
scanf("%s",v);
printf("\t\nda quanti caratteri è composto il vettore??\n");
scanf("%d",&num);
stampa_normale(v);
ordinamento_vett(v,num);
stampa_ordinato(v);
return 0;
}