Salve a tutti, ho fatto questo semplice programma, dove l utente inserire "0" quando vuole terminare l operazione e "1" se vuole continuare, e mi sa che li che si impiccia , ecco il codice:
:
main()
{
int n,i;
int num;
printf("quante offerte vuoi inserire?:");
scanf("%d",&n);
struct offerte fornitori[n];
for(i=0;i<n;i++){
printf("inserisci %d nome :",i);
scanf("%s",fornitori[i].nome);
printf("inserisci %d offerta:",i);
scanf("%f",&fornitori[i].offerta);
printf("\n");
printf("inserisci 0 se vuoi terminare, 1 se continuare:");
scanf("%d",&num);
if(num==0){
i=n;
}
if(num==1)
printf("\n");
}
float t;
int j;
// bubble sort
for (i = 1; i<n; i++) {
for (j = 1; j < n; j++) {
if (fornitori[j - 1].offerta>fornitori[j].offerta> 0) {
t=fornitori[j - 1].offerta;
fornitori[j - 1].offerta=fornitori[j].offerta;
fornitori[j].offerta=t;
}
}
}
printf("l'offerta migliore e' di %s, ha offerto : %.2f euro\n",fornitori[0].nome,fornitori[0].offerta);
non ho messo la dichiarazione se no veniva troppo lungo, in pratica nell ultimo printf mi da un numero stranissimo, sapete dove ho sbagliato? anche se credo in quei due if nella struct
grazie mille