Bez używania bibliotek - czy da się ustawić przedział dla szukania maksymalnej i minimalnej?

0

Tak jak w temacie, czy dałoby się ustawić przedział dla ustalania maksymalnej i minimalnej, np. żeby porównać która jest bliżej jakiegoś wyniku?

3

Niestety nie rozumiem pytania. Możesz jaśniej?

0
KamilAdam napisał(a):

Niestety nie rozumiem pytania. Możesz jaśniej?

Chciałbym wyznaczyć liczbę żeby to wyglądało np tak
{1,2,3,4,5,..."7" - maksymalna w przedziale pierwszym} 8 - to liczba do której chciałbym to wyznaczać {"9"-minimalna w przedziale drugim,10,11,...}

0
Agator napisał(a):
KamilAdam napisał(a):

Niestety nie rozumiem pytania. Możesz jaśniej?

Chciałbym wyznaczyć liczbę żeby to wyglądało np tak
{1,2,3,4,5,..."7" - maksymalna w przedziale pierwszym} 8 - to liczba do której chciałbym to wyznaczać {"9"-minimalna w przedziale drugim,10,11,...}

#include <iostream>
int liczba[4];

void srednia()
{
float suma,srednia;
    suma = liczba[0]+liczba[1]+liczba[2]+liczba[3]+liczba[4];
    srednia = suma/5;
    std::cout<<"Nasza srednia to: "<<srednia<<"\n";
}
void bliskasredniej()
{
//znajdz liczbe najblizsza do sredniej!
}

int main()
{
    std::cout << "Podaj 5 cyfr oddzielonych spacja: " <<"\n";
    std::cin>>liczba[0]>>liczba[1]>>liczba[2]>>liczba[3]>>liczba[4];
    srednia();bliskasredniej();
    return 0;
}
0
  1. Jak bedzie milion liczb to tez bedziesz recznie wpisywal 0 1 2 3 4 5 6 7 ... 9123 ... 817414 ... ? ;)
  2. Jesli to nie ma miec jakiejs wysrubowanej zlozonosci to liniowo mozesz wyznaczyc liczbe ktorej abs(l - srednia) jest minimalne (ale wieksze od 0 zakladam? chociaz niekoniecznie)
1

Masz tutaj jak to powinno mniej wiecej wygladac bez hardcodowania

#include <iostream>

void srednia(int liczby[], int ile)
{
    double suma = 0.0;
    double srednia;
    

    for(int i = 0; i < ile; i++) {
        suma += liczby[i];
    }

    srednia = suma / ile;

    std::cout<<"Nasza srednia to: "<<srednia<<"\n";
}

int main()
{
    int ile;

    std::cout << "Ile liczb chcesz podac?\n";
    std::cin >> ile;

    auto liczby = new int[ile];

    std::cout << "Podaj cyfry oddzielone spacja: \n";

    for (int i = 0; i < ile; i++) {
        std::cin >> liczby[i];
    }

    srednia(liczby, ile);
    
    return 0;
}
0

@Agator:
Podaj jakieś przykładowe liczby, tę "bliską średniej" i jak ją liczyć w ogólnym przypadku; bo nawet nie mam jak zwalidować powyższego rozwiązania.

0
Agator napisał(a):

int liczba[4];

Wyrzuć zmienną globalną.
A po drugie używasz pięciu komórek z czterech (jeździsz po pamięci)

void srednia()

Nie void tylko float.
Zwyczajem początkujących zadowoliłeś się wydrukowaniem, i zostawiłeś funkcję bezużyteczną, np obliczona średnia nie da się użyć w dalszej części zadania

Czyli wg mnie funkcja powinna mieć nagłówek

float srednia(int cnt, float zmn[])

albo w ładniejszym C++

float srednia(std::array<float> zmn)

Poprawka wg @enedil

float srednia(const std::array<float> & zmn)

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