Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Pagalbos su C++ uždaviniu


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3033 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, sprendžiau uždavinį, bet įsivėlė klaida, kuri rodo neteisingą ir nepilną atsakymą. Pateikiu uždavinio sąlygą ir savo sprendimą.

 

Petraičių šeima persikėlė gyventi į sodybą. Norėdami efektyviau išnaudoti sodybos galimybes nutarė auginti triušius. Jie įsigijo tris poreles skirtingų veislių triušių: Belgijos milžinų, Vokietijos dėmėtųjų ir Prancūzijos avinų. Šios veislės tinka ir kailiams, ir mėsai. Belgijos milžinų patelės per metus atsiveda bm triušiukų vadas. Vokietijos dėmėtųjų – vd ir Prancūzijos avinų  patelės gali atsivesti per metus pa vadas. Triušiukų skaičiaus vienoje vadoje vidurkis – trk. Trijų mėnesių triušiukai veisimui kainuojatrkain eurų. Belgijos milžinai užauga iki svbm kg,  Vokietijos dėmėtieji iki svvd kg, Prancūzijos milžinai iki  pasv kg.

Užduotis. Apskaičiuokite: kurią veislę augindami Petraičiai gaus didžiausią pelną jei triušiukus parduos veisimui; kurios veislės triušiukas užaugs didžiausias.

Pradiniai duomenys. Pirmoje eilutėje pateikti triušiukų vadų kiekis (Belgijos milžinų, Vokietijos dėmėtųjų ir Prancūzijos avinų).

Antroje eilutėje įrašyta suaugusių triušių masė kilogramais (Belgijos milžinų, Vokietijos dėmėtųjų ir Prancūzijos avinų).

Trečioje eilutėje triušiukų vados skaičiaus vidurkis, trijų mėnesių triušiuko kaina.

Rezultatai.

Pirmoje eilutėje: triušių veislė, kurią augindami ir veisdami Petraičiai gaus didžiausią pelną.

Antroje eilutėje: triušių veislė, kurios triušiukas užaugs didžiausias.

Pradiniai duomenys Rezultatas

3 5 5

8 7 6

6 30

Auginant Prancūzijos avinus arba Vokietijos dėmėtuosius pelnas bus didžiausias

Didžiausi užauga Belgijos milžinai

 

#include <iostream>
using namespace std;
 
int main() 
{
   int bm, vd, pa, trk, trkain, svbm, svvd, pasv;
 
 
  cout<<"Įveskite Belgijos milžinų vadų kiekį per metus"<<endl;
   cin >> bm;
  cout<<"Įveskite Vokietijos dėmėtųjų vadų kiekį per metus"<<endl;
   cin >> vd;
  cout<<"Įveskite Prancūzijos avinų vadų kiekį per metus"<<endl;
   cin >> pa;
  cout<<"Įveskite Belgijos milžinų suaugusio triušio svorį"<<endl;
   cin >> svbm;
  cout<<"Įveskite Vokietijos dėmėtųjų suaugusio triušio svorį"<<endl;
   cin >> svvd;
  cout<<"Įveskite Prancūzijos avinų suaugusio triušio svorį"<<endl;
   cin >> pasv;
  cout<<"Įveskite triušiukų kiekio vidurkį vadoje"<<endl;
   cin >> trk;
  cout<<"Įveskite 3 mėn. triušiuko kainą"<<endl;
   cin >> trkain;
 
  if (bm * svbm * trkain > vd * svvd * trkain > pa * pasv * trkain)
  cout<< "Auginant Belgijos milžinus pelnas bus didžiausias" << endl;
   if (bm * svbm * trkain < vd * svvd * trkain > pa * pasv * trkain)
  cout<< "Auginant Vokietijos dėmėtuosius pelnas bus didžiausias" << endl;
   if (bm * svbm * trkain < vd * svvd * trkain < pa * pasv * trkain)
  cout<< "Auginant Prancūzijos avinus pelnas bus didžiausias" << endl;
   if (bm * svbm * trkain == vd * svvd * trkain > pa * pasv * trkain)
  cout<< "Auginant Belgijos milžinus arba Vokietijos dėmėtuosius pelnas bus didžiausias" << endl;
   if (bm * svbm * trkain < vd * svvd * trkain == pa * pasv * trkain)
  cout<< "Auginant Vokietijos dėmėtuosius arba Prancūzijos avinus pelnas bus didžiausias" << endl;
   if (bm * svbm * trkain == pa * pasv * trkain > vd * svvd * trkain)
  cout<< "Auginant Belgijos milžinus arba Prancūzijos avinus pelnas bus didžiausias" << endl;
        
   if (trk * svbm > trk * svvd > trk * pasv)
      cout<< "Didžiausi užauga Prancūzijos avinai";
   if (trk * svbm < trk * svvd > trk * pasv)
      cout<< "Didžiausi užauga Vokietijos dėmėtieji";
   if (trk * svbm < trk * svvd < trk * pasv)
      cout<< "Didžiausi užauga Belgijos milžinai";
   if (trk * svbm == trk * svvd > trk * pasv)
      cout<< "Didžiausi užauga Belgijos milžinai ir Vokiečių dėmėtieji";
   if (trk * svbm > trk * svvd == trk * pasv)
      cout<< "Didžiausi užauga Vkiečių dėmėtieji ir Prancūzijos avinai";
   if (trk * svbm == trk * pasv > trk * svvd)
      cout<< "Didžiausi užauga Belgijos milžinai ir Prancūzijos avinai";
      
   return 0;
}
Redaguota , nario NaxHQ`
Nuoroda į komentarą
Dalintis per kitą puslapį

Rodo blogą atsakymą, nes if sąlygos blogai užrašytos. Negali būti tarkim a > b > c.

Pavyzdžiui šitą:

if (a > b > c)
    cout << "Mums pzdc";

Reikia pakeisti į:

if (a > b && a > c)
    cout << "Mums pzdc";

&& atstoja IR, || atstoja ARBA

 

Ir tada kitus if rašyti reikia su else. Kai reikės atskiros išvesties, tada vėl if ir po to else if.

P. S. Pačios formulės pas tave irgi klaidingos. ;)

  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

http://pastebin.com/NuNwkTqKatsiprašau, bet čia man kažkokia nesąmonė gavosi. Viskas veikia - taip, bet kodas tai baisu net pačiam žiūrėti... Kažkokia nesąmoninga užduotis... Net panaudojau funkciją, kad truputi sutrumpinti rašymo. O šiaip jei būtų galima be apribojimų tai čia masyvai viską sutvarkytų.. Anyway, gal padės...

  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

http://pastebin.com/NuNwkTqKatsiprašau, bet čia man kažkokia nesąmonė gavosi. Viskas veikia - taip, bet kodas tai baisu net pačiam žiūrėti... Kažkokia nesąmoninga užduotis... Net panaudojau funkciją, kad truputi sutrumpinti rašymo. O šiaip jei būtų galima be apribojimų tai čia masyvai viską sutvarkytų.. Anyway, gal padės...

 

Kad ir pas tave kodas nepilnas...

Pvz.:

    bma = count(bm, tvs, tk);
    vda = count(vd, tvs, tk);
    paa = count(pa, tvs, tk);

if(bma==vda && vda==paa) cout << "Auginant bet kuria veisle, pelnas bus vienodas.";
else if(bma==vda) cout << "Auginant Belgijos milzinu arba Vokietijos demetuosius veisles, pelnas bus didziausias.";

O jeigu paa didesnis negu pirmi du? Pas tave būtent tokia pat tvarka eina kaip ir aš parašiau čia.

Redaguota , nario TheMariuzaz
Nuoroda į komentarą
Dalintis per kitą puslapį

 

Kad ir pas tave kodas nepilnas...

Pvz.:

    bma = count(bm, tvs, tk);
    vda = count(vd, tvs, tk);
    paa = count(pa, tvs, tk);

...

else if(bma==vda) cout << "Auginant Belgijos milzinu arba Vokietijos demetuosius veisles, pelnas bus didziausias.";

O jeigu paa didesnis negu pirmi du?

else if(paa>bma && paa>vda) cout << "Auginant Prancuzijos avinus veisle, pelnas bus didziausias.";

Sorry, bet geriau nesiginčyk su manim. Nes viskas čia veikia tik optimizacijos čia nėra praktiškai...

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3033 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...