tookie
06-05-2009, 11:43
Ciao a tutti
ho un piccolo problema con questo programma c...premetto che il programma completo è molto più complesso, visto che devo fare tante altre operazioni oltre a quelle che vedete qui...perciò potrei aver dimenticato di cancellare qualcosa del codice
#include <stdio.h>
#include <stdlib.h>
int main(int argc,int **argv[]){
int c,i;
void sort(int array[], int dim);
/*dichiarazione vettore*/
int array[c];
/*Inserisco i valori nell'array*/
for(i=0;i<=c;i++){
array[i]=(int)argv[i+1];
}
/*ordina dal piu piccolo al piu grande*/
sort(array,c);
for (i=0; i<c; i++) {
printf ("Il %d numero e' = %s\n",i+1,(char *)array[i]);
}
exit(0);
}
for (i = (dim - 1); i >= 0; i--) {
for (j = 0; j < i; j++) {
if (array[j] > array[i]) {
k = array[j];
array[j] = array[i];
array[i] = k;
}
}
}
}
Comunque il mio problema è che il metodo sort non ordina i gli interi che gli passo dalla riga di comando. Ho provato con diversi algoritmi insertionSort, bubblesort ecc ma sembra non voler andare, e mi stampa semplicemente i numeri come gli ho inseriti
$ ./nsort 2 1 4
Il 1 numero e' = 2
Il 2 numero e' = 1
Il 3 numero e' = 4
mentre ovviamente dovrebbe stampare
$ ./nsort 2 1 4
Il 1 numero e' = 1
Il 2 numero e' = 2
Il 3 numero e' = 4
ho un piccolo problema con questo programma c...premetto che il programma completo è molto più complesso, visto che devo fare tante altre operazioni oltre a quelle che vedete qui...perciò potrei aver dimenticato di cancellare qualcosa del codice
#include <stdio.h>
#include <stdlib.h>
int main(int argc,int **argv[]){
int c,i;
void sort(int array[], int dim);
/*dichiarazione vettore*/
int array[c];
/*Inserisco i valori nell'array*/
for(i=0;i<=c;i++){
array[i]=(int)argv[i+1];
}
/*ordina dal piu piccolo al piu grande*/
sort(array,c);
for (i=0; i<c; i++) {
printf ("Il %d numero e' = %s\n",i+1,(char *)array[i]);
}
exit(0);
}
for (i = (dim - 1); i >= 0; i--) {
for (j = 0; j < i; j++) {
if (array[j] > array[i]) {
k = array[j];
array[j] = array[i];
array[i] = k;
}
}
}
}
Comunque il mio problema è che il metodo sort non ordina i gli interi che gli passo dalla riga di comando. Ho provato con diversi algoritmi insertionSort, bubblesort ecc ma sembra non voler andare, e mi stampa semplicemente i numeri come gli ho inseriti
$ ./nsort 2 1 4
Il 1 numero e' = 2
Il 2 numero e' = 1
Il 3 numero e' = 4
mentre ovviamente dovrebbe stampare
$ ./nsort 2 1 4
Il 1 numero e' = 1
Il 2 numero e' = 2
Il 3 numero e' = 4