Helldron
10-12-2010, 11:41
Sto generando in C dei valori casuali usando la funzione rand().
In pratica sto usando delle variabili per descrivere un Impiegato e mi costruisco una stringa da stampare più volte su di un file, la cosa da notare (a parte quelle grosse fprintf) è l'uso delle variabili intere che io dentro l'if randomizzo. Ufficio e reparto sembrano tirare fuori sempre questo risultato:
2293260
Le altre mi danno valori coerenti (anno, a, m, g, stip).
#include <stdio.h>
#include <stdlib.h>
main () {
FILE *pf;
int i; //la matricola è l'intero "i" che si incrementa
.
.
.
.
.
int a, m, g; //data_nascita
int anno; //anno_assunzione
int stip; //stipendio
int uff; //numero dell'ufficio
int rep; //reparto effettivo
int f=0; //intero per scegliere a caso se avrò un ufficio o meno
pf = fopen ("dati.txt", "w");
if (pf) {
for (i=1; i<20; i++) {
anno=rand()%40 + 1970;
stip=rand()%750 + 850;
a=rand()%41 + 1950;
m=rand()%12 + 1;
g=rand()%31 + 1;
rep=rand()%10 + 1; //scelgo un reparto da 1 a 10 casuale
f=rand()%3 + 1; //scegli se avrò un ufficio
if (f==1) { // dipendente con ufficio
uff=rand()%10 + 1;
fprintf(pf,"%s%d%s%s%d%s%s%d%s%d%s%d%s%d%s%d%s%d%s%d%s%s%d%s\n", &s,i,&s2,&nome,i,&s2,&cognome,i,&s2,a,&separatore,m,&separatore,g,&s2,anno,&s2,stip,&s2,&uff,&s2,reparto,&rep,&s3);
}
else { // dipendente senza ufficio
fprintf(pf,"%s%d%s%s%d%s%s%d%s%d%s%d%s%d%s%d%s%d%s%s%s%s%d%s\n", &s,i,&s2,&nome,i,&s2,&cognome,i,&s2,a,&separatore,m,&separatore,g,&s2,anno,&s2,stip,&s2,&vuoto,&s2,reparto,&rep,&s3);
}
}
fclose (pf);
}
else printf("\nnon sei entrato.\n");
}
Mi sembra di usarle nello stesso identico modo, che succede???
Grazie :D
In pratica sto usando delle variabili per descrivere un Impiegato e mi costruisco una stringa da stampare più volte su di un file, la cosa da notare (a parte quelle grosse fprintf) è l'uso delle variabili intere che io dentro l'if randomizzo. Ufficio e reparto sembrano tirare fuori sempre questo risultato:
2293260
Le altre mi danno valori coerenti (anno, a, m, g, stip).
#include <stdio.h>
#include <stdlib.h>
main () {
FILE *pf;
int i; //la matricola è l'intero "i" che si incrementa
.
.
.
.
.
int a, m, g; //data_nascita
int anno; //anno_assunzione
int stip; //stipendio
int uff; //numero dell'ufficio
int rep; //reparto effettivo
int f=0; //intero per scegliere a caso se avrò un ufficio o meno
pf = fopen ("dati.txt", "w");
if (pf) {
for (i=1; i<20; i++) {
anno=rand()%40 + 1970;
stip=rand()%750 + 850;
a=rand()%41 + 1950;
m=rand()%12 + 1;
g=rand()%31 + 1;
rep=rand()%10 + 1; //scelgo un reparto da 1 a 10 casuale
f=rand()%3 + 1; //scegli se avrò un ufficio
if (f==1) { // dipendente con ufficio
uff=rand()%10 + 1;
fprintf(pf,"%s%d%s%s%d%s%s%d%s%d%s%d%s%d%s%d%s%d%s%d%s%s%d%s\n", &s,i,&s2,&nome,i,&s2,&cognome,i,&s2,a,&separatore,m,&separatore,g,&s2,anno,&s2,stip,&s2,&uff,&s2,reparto,&rep,&s3);
}
else { // dipendente senza ufficio
fprintf(pf,"%s%d%s%s%d%s%s%d%s%d%s%d%s%d%s%d%s%d%s%s%s%s%d%s\n", &s,i,&s2,&nome,i,&s2,&cognome,i,&s2,a,&separatore,m,&separatore,g,&s2,anno,&s2,stip,&s2,&vuoto,&s2,reparto,&rep,&s3);
}
}
fclose (pf);
}
else printf("\nnon sei entrato.\n");
}
Mi sembra di usarle nello stesso identico modo, che succede???
Grazie :D