|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2009
Messaggi: 133
|
[C]Problema record e tabelle
Il programma è questo:
Codice:
/*Scrivere un programmam che consenta di caricare un elenco di massimo 30 libri, ciascuno caratterizzato dai campi:
-Titolo
-Autore
-Prezzo
Scrivere una funziona che trovi il libro di prezzo maggiore*/
#include <stdio.h>
#include <conio.h>
typedef struct tlibri
{
char titolo [20];
char autore [30];
float prezzo [10];
};
tlibri libroprezmax;
tlibri elencolibri [100];
void prezzomax (tlibri libroprezmax, int n);
main ()
{
int n,i;
printf("Inserisci il numero dei libri: ");
scanf("%d", &n);
for(i=0;i<n;i++)
{
printf("Inserisci il titolo del libro: ");
scanf("%s", elencolibri [i].titolo);
printf("Inserisci l'autore del libro: ");
scanf("%s", elencolibri [i].autore);
printf("Inserisci il prezzo del libro: ");
scanf("%f", elencolibri [i].prezzo);
prezzomax(libroprezmax,n);
}
getch();
}
void prezzomax (tlibri libroprezmax, int n)
{
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 146
|
la prima volta considera come prezzo massimo il primo libro e lo salvi in una variabile dopodichè controlli il prezzo sucessivo con quello che avevi salvato precendentemente , se è maggiore cambi il libro dal prezzo massimo altrimenti non fai niente .
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Sep 2009
Messaggi: 133
|
Ho risolto, ho cambiato tante cose:
Codice:
/*Scrivere un programmam che consenta di caricare un elenco di massimo 30 libri, ciascuno caratterizzato dai campi:
-Titolo
-Autore
-Prezzo
Scrivere una funziona che trovi il libro di prezzo maggiore*/
#include <stdio.h>
#include <conio.h>
typedef struct tlibri
{
char titolo[20];
char autore[30];
float prezzo;
};
int prezzomax( tlibri elencolibri[] , int n );
main ()
{
int n,i,imax;
tlibri elencolibri[30];
printf("Inserisci il numero dei libri: ");
scanf("%d", &n);
for(i=0;i<n;i++)
{
printf("Inserisci il titolo del libro: ");
scanf("%s", &elencolibri[i].titolo);
printf("Inserisci l'autore del libro: ");
scanf("%s", &elencolibri[i].autore);
printf("Inserisci il prezzo del libro: ");
scanf("%f", &elencolibri[i].prezzo);
}
imax= prezzomax( elencolibri, n );
printf("Il libro con prezzo piu' alto e' :%s", elencolibri[imax].titolo);
getch();
}
int prezzomax( tlibri elencolibri[] , int n )
{
int I,imax;
float ap;
ap=elencolibri[0].prezzo;
for(I=1;I<n;I++)
{
if(elencolibri[i].prezzo>ap)
imax=I;
return imax;
}
}
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 146
|
l'unica cosa è che non fai nessun controllo per assicurarti che il numero n di libri sia effettivamente minore di 30 .
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 2267
|
Sicuro che la funzione prezzomax sia corretta?
Io la porrei così: Codice:
int prezzomax( tlibri elencolibri[] , int n )
{
int I,imax;
float ap;
ap=elencolibri[0].prezzo;
imax = 0;
for(I=1;I<n;I++)
{
if(elencolibri[I].prezzo>ap)
{
ap = elencolibri[I].prezzo;
imax=I;
}
}
return imax;
}
Codice:
int prezzomax( tlibri elencolibri[] , int n )
{
int imax = 0;
for(int i=1;i<n;i++)
{
if(elencolibri[i].prezzo>elencolibri[imax].prezzo)
imax=i;
}
return imax;
}
__________________
Concluso con:... Ultima modifica di Floris : 21-09-2011 alle 21:18. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:47.



















