Ajutor la problema asta va rog!!
Se citesc de la tastatura S, o sumă de bani disponibilă de 4 cifre (s<10000), n, numărul de produse (n<8) apoi cele
n preţuri ale unor produse p1,p2, ....pn şi cantităţile în care sunt disponibile c1,c2, ....cn.
a. Să se afişeze pe ecran cu un mesaj corespunzător
a1.Lista produselor și prețurile lor
a2.Lista produselor ordonate după preț
a3.Daca primele 4 produse care pot fi cumpărate cu suma dată c.
a.4.Cele mai ieftine produse şi numărul lor
b.Să se scrie în fişierul tema5.out: Lista produselor în ordinea descrescătoare a cantităţilor
Răspunsuri la întrebare
#include <iostream>
#include <fstream>
using namespace std;
ofstream fout("tema5.out");
int S, n;
struct Produs{
int pret, cantitate;
}x[8];
int main()
{
cout << "Suma = "; cin >> S;
cout << "Nr. de produse: "; cin >> n;
for(int i=0; i<n; ++i){
cout << endl << "Produsul " << i+1 << endl;
cout << "Pret: "; cin >> x[i].pret;
cout << "Cantitate: "; cin >> x[i].cantitate;
}
cout << endl;
for(int i=0; i<n; ++i)
cout << x[i].pret << ' ' << x[i].cantitate << endl;
for(int i=0; i<n-1; ++i)
for(int j=i+1; j<n; ++j)
if(x[i].pret > x[j].pret){ //nu ai scris daca crescator sau descrescator, modifici tu dupa cerinta
Produs aux = x[i];
x[i] = x[j];
x[j] = aux;
}
cout << endl << "Produsele ordonate crescator dupa pret sunt: " << endl;
for(int i=0; i<n; ++i)
cout << x[i].pret << ' ' << x[i].cantitate << endl;
int sum = 0;
for(int i=0; i<4; ++i)
sum += x[i].pret;
if(sum <= S)
cout << endl << "Produsele pot fi cumparate" << endl;
else
cout << endl << "Produsele nu pot fi cumparate" << endl;
for(int i=0; i<n-1; ++i)
for(int j=i+1; j<n; ++j)
if(x[i].cantitate < x[j].cantitate){
Produs aux = x[i];
x[i] = x[j];
x[j] = aux;
}
for(int i=0; i<n; ++i)
fout << x[i].pret << ' ' << x[i].cantitate << endl;
return 0;
}