09/05/11 12:39
mycronapoli
Ragazzi ho bisogno di voi. La soluzione sarà di una banalità unica... solo che non riesco a venirne a capo. Allora ho questo programma che mi ordina in base al prezzo dei prodotti. Quindi nel main si inseriscono dei prodotti {nome, codice , prezzo}. Ora quando devo inserirli (ciclo for) mi fa inserire solo una volta il nome invece delle volte dettate dal ciclo. Qualcuno mi sa aiutare?!
Ecco il codice:
Ecco il codice:
#include <stdio.h> #include <stdlib.h> #define MAX 3 struct prodotto { char nome[100]; int codice; int prezzo;}; typedef struct prodotto Prodotto; int main() { int i; Prodotto vettore[MAX]; for (i=0;i<MAX;i++) { printf("Nome:"); gets(vettore[i].nome); printf("Codice:"); scanf("%d",&vettore[i].codice); printf("Prezzo:"); scanf("%d", &vettore[i].prezzo); } for (i=0;i<MAX;i++) printf("%s , %d , %d\n",vettore[i].nome , vettore[i].codice , vettore[i].prezzo); ord_per_ins(vettore,MAX); for (i=0;i<MAX;i++) printf("%s , %d , %d\n",vettore[i].nome , vettore[i].codice , vettore[i].prezzo); return 0; } void ord_per_ins(Prodotto vettore[], int n) { int i,j; Prodotto el_da_ins; for (i=1; i<n; i++) { j=i-1; el_da_ins=vettore[i]; while (j>=0 && el_da_ins.prezzo<vettore[j].prezzo) { vettore [j+1]=vettore[j]; j--; }vettore [j+1]=el_da_ins; } }
Ultima modifica effettuata da mycronapoli 09/05/11 16:42
aaa