In un supermercato il prezzo del prodotto è legato alla quantità: se si comprano 3 prodotti dello stesso tipo, uno è in regalo; se si comprano 1 o 2 prodotti non c’è regalo.
Calcolare il prezzo da pagare, inserendo in input il prezzo unitario e la quantità.
Aggiornamento:In C++
Copyright © 2024 QUIZSILO.COM - All rights reserved.
Answers & Comments
Ho voluto aiutarti mostrandoti una delle questioni più controverse: il passaggio di una struct ad una funzione. In questo caso, addirittura, il passaggio di un Array di Struct, che, spesso, risolve una grande quantità di problemi:
#include <iostream>
#include <string.h>
using namespace std;
typedef struct p
{
string ar;
int q;
float p;
}PROD;
void insea(p [],int);
void inseq(p [],int);
bool contr(float [],p [],int);
int main()
{
int i=0,l;
PROD a[10];
float c[10],tot=0;
do
{
insea(a,i);
if(a[i].ar.length()==0)
break;
inseq(a,i);
contr(c,a,i);
cout << "Totale: " << c[i];
cin.ignore();
tot += c[i];
i++;
}while(1);
system("cls");
cout << "Articolo\tQuantita'\tPrezzo\tTot Parziale";
cout << "\n-------------------------------------------------\n";
for(l=0;l<i;l++)
cout << a[l].ar << "\t\t" << a[l].q << "\t\t" << a[l].p <<"\t" <<c[l]<<"\n";
cout << "\nTotale speso:\t\t\t\t" << tot;
return 0;
}
void insea(p x[],int y)
{
cout << "\nInserisci articolo (<INVIO> termina): ";
getline(cin,(x[y].ar));
return;
}
void inseq(p x[],int y)
{
cout << "Inserisci quantita': ";
cin >> x[y].q;
cout << "Inserisci prezzo: ";
cin >> x[y].p;
return;
}
bool contr(float a[],p x[],int y)
{
bool t;
if(x[y].q > 2)
{
a[y] = x[y].p * (x[y].q - 1);
t = true;
}
else
{
a[y] = x[y].p * x[y].q;
t = false;
}
return t;
}