Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-09-2011, 17:01   #1
Master94ga
Member
 
L'Avatar di Master94ga
 
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)
{
Io non so come fare la funzione che trovi e stampi il libro con prezzo maggiore, consigli?
Master94ga è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 17:26   #2
simo8
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 .
simo8 è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 17:52   #3
Master94ga
Member
 
L'Avatar di Master94ga
 
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;
      }                                          
}
Master94ga è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 19:44   #4
simo8
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 .
simo8 è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 20:11   #5
Floris
Senior Member
 
L'Avatar di Floris
 
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;                                         
}
Poi potresti renderla più snella:
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;                                   
}
Poichè basta che ti ricordi l'indice e non anche il valore massimo.
__________________
Concluso con:...

Ultima modifica di Floris : 21-09-2011 alle 20:18.
Floris è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
Le fotografie dell'eclissi solare e dell...
Oracle AI Database si potenzia con nuove...
Russia offline: blackout internet mobile...
Gemini, Google investe 30 milioni per la...
Roborock Qrevo Edge S5A: 17.000 Pa, acqu...
Resa pubblica la foto della ''Terra che ...
Il robot che ha piegato 200 scatole di f...
SteelSeries Aerox 3 Wireless Gen 2: nuov...
"Quasi sociopatico": Sam Altma...
Star Wars Eclipse in difficoltà: ...
Gestione del team e romance organiche: l...
Intel lancia Core Ultra X9 378H: hardwar...
Tomodachi Life non supporterà Handheld M...
Identificati i boss di REvil e GandCrab:...
Google Chrome 148 introduce il caricamen...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v