Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    c++: aiuto con le variabili globali

    Salve ragazzi ho questo problema.
    vi posto la traccia:
    Codice PHP:
     In una libreria costituita da 10 libriciascun libro è identificato dalle seguenti informazioni
    id
    titolo
    autore
    codice
    isbn
    prezzo
    editrice
    data
    Implementare le seguenti funzioni

    1Caricamento della tabella relativa alla libreria 
    2
    Calcolo del prezzo medio dei libri 
    3
    Visualizzazione dell'autore del libro piu costoso e il titolo del libro meno costoso 
    Ho svolto la prima parte e la seconda tranquillamente.
    Mentre per la terza volevo costruire una funzione che facesse questo:
    date 4 variabili globali:
    Codice PHP:
    //globali 
    float prezzo_maxprezzo_min
    string autore_maxstring titolo_min
    ho implementato questa funzione che le modificasse in base ai dati ricevuti:

    Codice PHP:
    void piu_meno_costoso(string liber_tit[], string liber_aut[], float liber_pre[]) { 
    int i; for (i=0i<Ni++) { 
    if(
    i=0) {prezzo_max liber_pre[i]; prezzo_min liber_pre[i]; autore_max liber_aut[i]; titolo_min liber_tit[i]; } 
    else { 
    if (
    liber_pre[i] > prezzo_max) {autore_max liber_aut[i]; prezzo_max liber_pre[i]; }
     if (
    liber_pre[i] < prezzo_min) {titolo_min liber_tit[i]; prezzo_min liber_pre[i]; } } } } 
    Tuttavia richiamando la funzione nel corso del programma
    Codice PHP:
    piu_meno_costoso(libro_titololibro_autorelibro_prezzo); 
    il programma si blocca e non va avanti: non compaiono errori ne il programma esce dall'esecuzione. Semplicemente è come se si mettesse in pausa perenne.

    Aiutatemi

    Qui di seguito il codice completo:
    Codice PHP:
    /* In una libreria costituita da 10 libri, ciascun libro è identificato dalle seguenti informazioni:
    id
    titolo
    autore 
    codice 
    isbn 
    prezzo 
    editrice 
    data 
    Implementare le seguenti funzioni: 
    1) Caricamento della tabella relativa alla libreria 
    2) Calcolo del prezzo medio dei libri 
    3) Visualizzazione dell'autore del libro piu costoso e il titolo del libro meno costoso */

     #include <iostream> 
    #include <string> 
    using namespace std
    const 
    int N 2
    //globali 
    float prezzo_maxprezzo_min
    string autore_maxstring titolo_min

    void piu_meno_costoso(string liber_tit[], string liber_aut[], float liber_pre[]) { 
    int i; for (i=0i<Ni++) { 
    if(
    i=0) {prezzo_max liber_pre[i]; prezzo_min liber_pre[i]; autore_max liber_aut[i]; titolo_min liber_tit[i]; } 
    else { 
    if (
    liber_pre[i] > prezzo_max) {autore_max liber_aut[i]; prezzo_max liber_pre[i]; }
     if (
    liber_pre[i] < prezzo_min) {titolo_min liber_tit[i]; prezzo_min liber_pre[i]; } } } }
     
    int main() { 
    //Dichiarazione variabili 
    int n=0
    typedef struct int giornoint meseint anno; } tdata
    typedef struct int idstring titolostring autorestring codicestring isbnfloat prezzostring editricetdata data; } record
    record libro[N]; 
    string libro_titolo[N]; 
    string libro_autore[N]; 
    float libro_prezzo[N]; 
    float media 0

    //Acquisizione dei libri 
    while (N) { cout << "Libro con ID: " << nlibro[n].id ncout << "\nTitolo:\n"cin >> libro[n].titolocout << "\nAutore:\n"cin >> libro[n].autorecout << "\nCodice:\n"cin >> libro[n].codicecout << "\nIsbn:\n"cin >> libro[n].isbncout << "\nPrezzo:\n"cin >> libro[n].prezzocout << "\nEditrice:\n"cin >> libro[n].editricecout << "\nData:\n"cout << "\nGiorno:\n"cin >> libro[n].data.giornocout << "\nMese:\n"cin >> libro[n].data.mesecout << "\nAnno:\n"cin >> libro[n].data.annocout << "\n\n"libro_titolo[n] = libro[n].titololibro_autore[n] = libro[n].autorelibro_prezzo[n] = libro[n].prezzomedia += libro[n].prezzon++; }


     
    //Stampa di tutti i libri 
    0cout << "ID\tTITOLO\tAUTORE\tCODICE\tISBN\tPREZZO\tEDITRICE\tDATA(gg-mm-aaaa)\n"; while (N) { cout << libro[n].idcout << "\t"cout << libro[n].titolocout << "\t"cout << libro[n].autorecout << "\t"cout << libro[n].codicecout << "\t"cout << libro[n].isbncout << "\t"cout << libro[n].prezzocout << "\t"cout << libro[n].editricecout << "\t"cout << libro[n].data.giornocout << "-"cout << libro[n].data.mesecout << "-"cout << libro[n].data.annocout << endlcout << "\n"n++; } media media/ncout << "MEDIA PREZZI LIBRI: " << mediacout << "\n"cout << "\n"

    piu_meno_costoso(libro_titololibro_autorelibro_prezzo); cout << "Titolo libro con prezzo minimo: " << titolo_min << " Prezzo: " << prezzo_mincout << "Autore libro con prezzo massimo: " << autore_max << " Prezzo: " << prezzo_maxcin >> media; return 0; } 

  2. #2
    Ragazzi nessuno mi aiutaaaaaa

  3. #3
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    nella funzione piu_meno_costoso dopo il for nell'if hai meso un '=' al posto del '=='

    quindi fai un for infinito

  4. #4
    il solito classicissimo errore, che si risolve banalmente e per sempre mettendo nei confronti la costante (se si ha una costante ovviamente) a sinistra:
    http://www.isidoroghezzi.net/assegna...r_sbaglio.html

    qualcuno tra di voi osa ancora nei confronti mettere la costante a destra?

    ;-)

  5. #5
    BEL METODO 5==X

  6. #6
    Originariamente inviato da MacApp
    qualcuno tra di voi osa ancora nei confronti mettere la costante a destra?
    Ho provato ad abituarmi alla costante a sinistra, ma non ci riesco proprio, mi dà fastidio. Del resto, basta mettere i warning a paletta (o quantomeno abilitare il warning specifico) e il compilatore ti avvisa se vede un = in un'istruzione condizionale (e mi costringe a chiarificare degli if con assegnamento voluto, tipo
    codice:
    DWORD codiceErrore;
    if(!(codiceErrore=Funzione(/* bla bla bla */)))
    {
        /* Tutto ok */
    }
    else if(codiceErrore==UN_ERRORE)
        throw UnErroreSpecifico;
    else
        throw ErroreGenerico(codiceErrore);
    ).
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Originariamente inviato da MacApp
    qualcuno tra di voi osa ancora nei confronti mettere la costante a destra?
    Presente! Mi aiuta a non impigrirmi troppo.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da MacApp
    qualcuno tra di voi osa ancora nei confronti mettere la costante a destra?
    Sempre!

    Mi fido tanto di me stesso ! ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.