Salve ragazzi ho questo problema.
vi posto la traccia:
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
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_max, prezzo_min;
string autore_max; string 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=0; i<N; i++) {
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_titolo, libro_autore, libro_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_max, prezzo_min;
string autore_max; string titolo_min;
void piu_meno_costoso(string liber_tit[], string liber_aut[], float liber_pre[]) {
int i; for (i=0; i<N; i++) {
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 giorno; int mese; int anno; } tdata;
typedef struct { int id; string titolo; string autore; string codice; string isbn; float prezzo; string editrice; tdata 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 < N) { cout << "Libro con ID: " << n; libro[n].id = n; cout << "\nTitolo:\n"; cin >> libro[n].titolo; cout << "\nAutore:\n"; cin >> libro[n].autore; cout << "\nCodice:\n"; cin >> libro[n].codice; cout << "\nIsbn:\n"; cin >> libro[n].isbn; cout << "\nPrezzo:\n"; cin >> libro[n].prezzo; cout << "\nEditrice:\n"; cin >> libro[n].editrice; cout << "\nData:\n"; cout << "\nGiorno:\n"; cin >> libro[n].data.giorno; cout << "\nMese:\n"; cin >> libro[n].data.mese; cout << "\nAnno:\n"; cin >> libro[n].data.anno; cout << "\n\n"; libro_titolo[n] = libro[n].titolo; libro_autore[n] = libro[n].autore; libro_prezzo[n] = libro[n].prezzo; media += libro[n].prezzo; n++; }
//Stampa di tutti i libri
n = 0; cout << "ID\tTITOLO\tAUTORE\tCODICE\tISBN\tPREZZO\tEDITRICE\tDATA(gg-mm-aaaa)\n"; while (n < N) { cout << libro[n].id; cout << "\t"; cout << libro[n].titolo; cout << "\t"; cout << libro[n].autore; cout << "\t"; cout << libro[n].codice; cout << "\t"; cout << libro[n].isbn; cout << "\t"; cout << libro[n].prezzo; cout << "\t"; cout << libro[n].editrice; cout << "\t"; cout << libro[n].data.giorno; cout << "-"; cout << libro[n].data.mese; cout << "-"; cout << libro[n].data.anno; cout << endl; cout << "\n"; n++; } media = media/n; cout << "MEDIA PREZZI LIBRI: " << media; cout << "\n"; cout << "\n";
piu_meno_costoso(libro_titolo, libro_autore, libro_prezzo); cout << "Titolo libro con prezzo minimo: " << titolo_min << " Prezzo: " << prezzo_min; cout << "Autore libro con prezzo massimo: " << autore_max << " Prezzo: " << prezzo_max; cin >> media; return 0; }