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?
Niestety nie rozumiem pytania. Możesz jaśniej?
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,...}
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;
}
- Jak bedzie milion liczb to tez bedziesz recznie wpisywal 0 1 2 3 4 5 6 7 ... 9123 ... 817414 ... ? ;)
- 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)
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;
}
@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.
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)