Pereiti prie turinio

[CPP] Kas negerai?


Rekomenduojami pranešimai

#include <iostream>

using namespace std;
void ivedimas();
int sukeisti(int& x, int& y);
int rikiuoti(int& a,int& b,int& c,int& d);
int sk1,sk2,sk3,sk4,temp;
int main()
{
   ivedimas();
   rikiuoti(sk1, sk2, sk3, sk4);
   cout << sk1 << sk2 << sk3 << sk4;


   return 0;
}

void ivedimas()
{
   cout << "Iveskite a: ";
   cin >> sk1;
   cout << "Iveskite b: ";
   cin >> sk2;
   cout << "Iveskite c: ";
   cin >> sk3;
   cout << "Iveskite d: ";
   cin >> sk4;
}

int sukeisti(int& x, int& y)
{
   temp = x; x = y; y = temp;
   return x, y;
}

int rikiuoti(int& a,int& b,int& c,int& d)
{
   if(a > b) sukeisti(a, b);
       else if(a > c) sukeisti(a, c);
       else if(a > d) sukeisti(a, d);
       else if(b > c) sukeisti(b, c);
       else if(b > d) sukeisti(b, d);
       else if(c > d) sukeisti(c, d);
   return a, b, c, d;
}

 

Isivariau galvos skausma..

Nuoroda į pranešimą
Dalintis kituose puslapiuose

int sukeisti(int& x, int& y)
{
   temp = x; x = y; y = temp;
   return x, y;
}

Čia nesamonė, kaip tu dvi reikšmes grąžini? reikšmės yra paduodamos( grąžinamos per parametrų adresus), funckijoje nereikia nieko returintinti.

 

Pakeisk savo kodą taip:

 

Funkcijos antraštė:

void sukeisti(int& x, int& y);

 

Funkcija:

void sukeisti(int& x, int& y)
{
   temp = x; x = y; y = temp;
}

Redagavo babunas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Netinkamas metodas surūšiuoti 4 skaičiams, šiuo metodu reiktų iki 16 sukeitimo operacijų, pas tamstą tik aštuonios ir iš jų įvykdoma tik viena, vieną kartą. Kaip minimum trūksta ciklo.

Galima būtų ir rekursiškai, pvz

#include <iostream>
#include <utility>

template <typename A0, typename... Args>
   auto& min_args (A0& a0, Args&... args) {
       return min_args (a0, min_args (args...));     
   };

template <typename A0, typename A1>
   auto& min_args (A0& a0, A1& a1) {
       return a0 < a1 ? a0 : a1; 
   };

template <typename A, typename B>
   void swap_args (A& a, B& b) {
       if (&a == &b) return;
       auto t = std::move (a);
       a = std::move (b);
       b = std::move (t);
   }

template <typename A0, typename... Args>
   void sort_args (A0& a0, Args&... args) {
       auto &m = min_args (a0, args...);
       swap_args (a0, m);
       sort_args (args...);
   };

template <typename A0>
   void sort_args (A0& a0) {}

int main (int, char**) {

   int a = 44, b = 544, c = 122, d = 3443, e = 50, f = 400;

   sort_args (a, b, c, d, e, f);
   std::cout 
       << a << ' '
       << b << ' ' 
       << c << ' ' 
       << d << ' '
       << e << ' '
       << f << ' ';

   return 0;
}

Redagavo alexcoldberg
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...