Mediana. Program.

0

Cześć, może ktoś sprawdzić czy napisany program jest ok? Czy jest wystarczająca ilość warunków? Dodam, że dopiero zaczynam więc proszę tłumaczyć łopatologicznie :p

Program ma wczytywać 3 liczby i wyświetlić na ekranie ich medianę. Dodatkowo mamy uwzględnić przypadki, gdy podamy trzy lub dwie takie same liczby.

#include <iostream>

using namespace std;

float a,b,c;

int main()
{
    cout<<"Podaj pierwsza liczbe: ";
    cin>>a;
    cout<<"Podaj trzecia liczbe: ";
    cin>>b;
    cout<<"Podaj druga liczbe: ";
    cin>>c;

    if ((a==b)&&(b==c))
        cout<<"Podales trzy rowne liczby.";
    if ((a==b)&&(b!=c))
        cout<<"Pierwsza i druga liczba sa takie same.";
    if ((a!=b)&&(a==c))
        cout<<"Pierwsza i trzecia liczba sa takie same.";
    if ((a!=b)&&(a!=c)&&(b==c))
        cout<<"Druga i trzecia liczba sa takie same.";

    //mediana
    if((a<b)&&(b<c))
        cout<<"Mediana to: "<<b;
    if((a<b)&&(b>c)&&(a<c))
        cout<<"Mediana to: "<<a;
    if((a<b)&&(b>c)&&(a>c))
        cout<<"Mediana to: "<<c;
    if((a>b)&&(b>c))
        cout<<"Mediana to: "<<b;
    if((a>b)&&(b<c)&&(a<c))
        cout<<"Mediana to: "<<a;
    if((a>b)&&(b<c)&&(a>c))
        cout<<"Mediana to: "<<c;

    return 0;
}
1

Zacznij od przeczytania w Wikipedii czym jest mediana.

0

Wiem czym jest mediana. Ale jeśli podajemy jedynie 3 liczby, nie można to zrobić w ten sposób? Czyli sprawdzamy która jest środkowa? (gdy podamy dwie takie same liczby program ma zwracać błąd)

0

a+b+c/3 ?

3

Wyobrażasz to sobie, jakbyś miał rozbudowaćten program do np. 100 liczb? ;)
Myślę, że do tego przyda Ci się:
http://www.cplusplus.com/reference/vector/vector/
http://www.cplusplus.com/reference/algorithm/sort/

0

Ok, poprawiłem. Program ma pobierać 3 liczby i wyświetlać na ekranie medianę, sekwencję tych liczb uporządkowanych malejąco oraz informacje czy przynajmniej dwie z tych liczb mają identyczną wartość. (temat: instrukcje if)

#include <iostream>

using namespace std;

float a,b,c;

int main()
{
    cout<<"Podaj pierwsza liczbe: ";
    cin>>a;
    cout<<"Podaj druga liczbe: ";
    cin>>b;
    cout<<"Podaj trzecia liczbe: ";
    cin>>c;

    if ((a==b)&&(b==c))
    {
        cout<<"Podales trzy rowne liczby."<<endl;
        cout<<"Mediana to: "<<a<<endl;
    }
    if ((a==b)&&(b!=c))
    {
        cout<<"Pierwsza i druga liczba sa takie same."<<endl;
        cout<<"Mediana to: "<<a<<endl;

        if (a<c)
            cout<<"Liczby uporzadkowane malejaco: "<<c<<" "<<b<<" "<<a;
        else cout<<"Liczby uporzadkowane malejaco: "<<a<<" "<<b<<" "<<c;
    }
    if ((a!=b)&&(a==c))
    {
        cout<<"Pierwsza i trzecia liczba sa takie same."<<endl;
        cout<<"Mediana to: "<<a<<endl;

        if (b<a)
            cout<<"Liczby uporzadkowane malejaco: "<<a<<" "<<c<<" "<<b;
        else cout<<"Liczby uporzadkowane malejaco: "<<b<<" "<<a<<" "<<c;
    }
    if ((a!=b)&&(a!=c)&&(b==c))
    {
        cout<<"Druga i trzecia liczba sa takie same."<<endl;
        cout<<"Mediana to: "<<b<<endl;

        if (a<c)
            cout<<"Liczby uporzadkowane malejaco: "<<b<<" "<<c<<" "<<a;
        else cout<<"Liczby uporzadkowane malejaco: "<<a<<" "<<b<<" "<<c;
    }

    //---------------------------------------------------------------------------------
    if((a<b)&&(b<c))
    {
        cout<<"Mediana to: "<<b<<endl;
        cout<<"Liczby uporzadkowane malejaco: "<<c<<" "<<b<<" "<<a;
    }
    if((a<b)&&(b>c)&&(a<c))
    {
        cout<<"Mediana to: "<<c<<endl;
        cout<<"Liczby uporzadkowane malejaco: "<<b<<" "<<c<<" "<<a;
    }
    if((a<b)&&(b>c)&&(a>c))
    {
        cout<<"Mediana to: "<<a<<endl;
        cout<<"Liczby uporzadkowane malejaco: "<<b<<" "<<a<<" "<<c;
    }
    if((a>b)&&(b>c))
    {
        cout<<"Mediana to: "<<b<<endl;
        cout<<"Liczby uporzadkowane malejaco: "<<a<<" "<<b<<" "<<c;
    }
    if((a>b)&&(b<c)&&(a<c))
    {
        cout<<"Mediana to: "<<a<<endl;
        cout<<"Liczby uporzadkowane malejaco: "<<c<<" "<<a<<" "<<b;
    }
    if((a>b)&&(b<c)&&(a>c))
    {
        cout<<"Mediana to: "<<c<<endl;
        cout<<"Liczby uporzadkowane malejaco: "<<a<<" "<<c<<" "<<b;
    }

    return 0;
}

Dzięki za pomoc! :)

2

a teraz zrob dla 5 liczb... jak zrobisz to zrob dla 10... jak zrobisz to zrob dla 50 ciekawie w ktorym momencie zrozumiesz co robisz zle

1

Jeżeli nie mieliście tablic to:

#include <iostream>
using namespace std;

int main()
  {
   cout<<"Podaj trzy liczby: ";
   double a,b,c,x;
   cin>>a>>b>>c;
   if(a>b) x=a,a=b,b=x;
   if(a>c) x=a,a=c,c=x;
   if(b>c) x=b,b=c,c=x;
   cout<<"Mediana to: "<<b<<endl;
   return 0;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0