Ciao, mi sapreste dire perché alla fine non mi visualizza i cicli for con i libri ordinati per costo pagina? E mi da i valori del costo pagina sballati?
#include <stdio.h>
#include <stdlib.h>
/*
Es3. Si crei la struttura libro, in cui ogni libro ha un codice numerico (numero intero) che lo caratterizza,
un numero di pagine e un costo. Si memorizzino i dati di tre libri e si calcoli il costo medio per pagina dei libri
e si stampino i dati dei tre libri in ordine crescente di costo per pagina.
*/
struct libro {
int na;
int pa;
float co;
};
void ordinamento(int vett[]);
int main()
{
struct libro l1;
struct libro l2;
struct libro l3;
float vett[3];
printf("Libro 1 - - -\n");
printf("Iserisci codice numerico: ");
scanf("%d",&l1.na);
printf("Iserisci numero pagine: ");
scanf("%d",&l1.pa);
printf("Iserisci costo: ");
scanf("%f",&l1.co);
printf("Libro 2 - - -\n");
printf("Iserisci codice numerico: ");
scanf("%d",&l2.na);
printf("Iserisci numero pagine: ");
scanf("%d",&l2.pa);
printf("Iserisci costo: ");
scanf("%f",&l2.co);
printf("Libro 3 - - -\n");
printf("Iserisci codice numerico: ");
scanf("%d",&l3.na);
printf("Iserisci numero pagine: ");
scanf("%d",&l3.pa);
printf("Iserisci costo: ");
scanf("%f",&l3.co);
vett[0] = l1.pa/l1.co;
vett[1] = l2.pa/l2.co;
vett[2] = l3.pa/l3.co;
printf("\nIl consto medio del libro 1 per paggina e' di: %f",vett[0]);
printf("\nIl consto medio del libro 2 per paggina e' di: %f",vett[1]);
printf("\nIl consto medio del libro 3 per paggina e' di: %f",vett[2]);
ordinamento(vett);
int i,j;
for(i = 0; i < 3; i++) {
if(vett[i] == l1.pa/l1.co){
printf("\nI libri ordinati per costo pagina:");
printf("\ncodice numerico: %d", l1.na);
printf("\nnumero pagine: %d", l1.pa);
printf("\ncosto: %d", l1.co);
printf("\ncosto per pagina %d", vett[i]);
}
}
for(i = 0; i < 3; i++) {
if(vett[i] == l2.pa/l2.co){
printf("\nI libri ordinati per costo pagina:");
printf("\ncodice numerico: %d", l2.na);
printf("\nnumero pagine: %d", l2.pa);
printf("\ncosto: %d", l2.co);
printf("\ncosto per pagina %d", vett[i]);
}
}
for(i = 0; i < 3; i++) {
if(vett[i] == l3.pa/l3.co){
printf("\nI libri ordinati per costo pagina:");
printf("\ncodice numerico: %d", l3.na);
printf("\nnumero pagine: %d", l3.pa);
printf("\ncosto: %d", l3.co);
printf("\ncosto per pagina %d", vett[i]);
}
}
printf("\n");
system("PAUSE");
return 0;
}
void ordinamento(int vett[]) {
int i, j;
int lunghezza = 3;
int tmp;
for (i = 0; i < lunghezza - 1; i++){
for (j = 0; j < lunghezza - i - 1; j++) {
if (vett[j] > vett[j + 1]) {
tmp = vett[j];
vett[j] = vett[j + 1];
vett[j + 1] = tmp;
}
}
}
}