PDA

View Full Version : Problema ordinamento numero di stringhe minore alle stringhe effettivamente create


markz88
07-02-2011, 11:17
Salve a tutti,
ho scritto questo codice che genera 1000 stringhe casuali e poi dovrebbe riordinarne 150 in un file a parte. Il codice è:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mylib.h>

#define elem 1000

int main() {

int i, j, lungstring, cont;
char v[20], stringhe[elem][21], filename[31];
FILE *fs, *bs;

srand(time(0));

/*CREAZIONE FILE DI TESTO DELLE STRINGHE DI MASSIMO 20 CARATTERI CIASCUNA*/

fs = fopen("stringhe.txt", "w");
for (i=0; i < elem; i++, lungstring = 0){
lungstring = (rand() % 19)+2;
for (j=0; j < lungstring; j++){
v[j] = rand_char();
v[lungstring]='\0';
}
fprintf(fs, "%s", v);
if (i < cont-1){
fprintf(fs, "\n");
}
}

fclose(fs);

printf("File contenente le stringhe casuali creato.\n");

/*SALVATAGGIO STRINGHE IN UN VETTORE*/

fs = fopen("stringhe.txt", "r");
for (i=0; i < elem; i++){
fscanf(fs, "%s", &stringhe[i][21]);
strcpy(sbackup[i],stringhe[i]);
}



/*ORDINAMENTO DELLE STRINGHE*/

cont = 150; //numero delle stringhe da ordinare

bubblesorts(stringhe, cont);

sprintf(filename, "bubblesort%d.txt", cont);
bs = fopen(filename, "w");


/*USO DEL BUBBLESORT PER LE STRINGHE*/

fprintf(bs, "STUDIO DELL'ALGORITMO BUBBLESORT SULLE STRINGHE:\n");
for (i=0; i < cont; i++)
fprintf(bs, "%s\n", stringhe[i]);

fclose(bs);

system("pause");
return 0;
}


Ma non funziona xD cioè mi spiego meglio.. se cont = 1000 il programma funziona e mi riordina le 1000 stringhe, ma se cont = 150 (o qualsiasi numero minore di 1000) il programma va in crash.. perchè?

SCUSATEMI HO RISOLTO!

cionci
08-02-2011, 11:34
Thread chiuso
|
V
http://www.hwupgrade.it/forum/showthread.php?t=1649196