Program liczący średnią arytmetyczną

0

Mam za zadanie stworzyc tablice 100 elementowa, wczytac n liczb z klawiatury i policzyc ich srednia arytmetyczna:

#include <iostream>

using namespace std;

int main()
{

    int t[100];
    int liczba;

    for (int i = 0; i < 100; i++) {
        cin >> liczba;
        t[i] = liczba;
    }
}

Poki co tablica dobrze zadeklarowana?

2

Tablica zadeklarowana i zdefiniowana dobrze, tylko zbędnie. Nie potrzebujesz tablicy do liczenia średniej (potrzebujesz sumy oraz ilości elementów, ich konkretne wartości są zbędne).

PS: popracuj nad formatowaniem kodu, bo już zaczyna być nieczytelnie. Jak masz problemy to polecam http://format.krzaq.cc

0

To dopiero pierwsza czesc zadania, po wpisaniu elementow (rozumiem ze az 100 tak?) program ma sumowac 1 i 2 element, potem 2 i 3 element potem 3 i 4 i ma stwierdzic ktora para jest najwieksza.

0

To Ty wiesz ile tych elementów ma być ;) Ale tablica ma 100.

0
#include <iostream>

using namespace std;

int main()
{
	
double t[100], suma, srednia, n;
int liczba, ilosc;

cout<<"Podaj n liczb: ";
cin>>n;


for(int i=0; i<n; i++)
{
cin>>liczba;
t[i]=liczba;
}
for(int i=0; i<n; i++){
	
	
	suma += t[i];
	ilosc= i+1;
	srednia=(suma/ilosc);
}
cout<<"Srednia to: "<<srednia;
	


}
 

Teraz jak uporać sie z tym zeby liczył pary?

0
#include <iostream>

using namespace std;

int main()
{
	
double t[100], suma, srednia, n;
double sumapary=0;
int liczba, ilosc;

cout<<"Podaj n liczb: ";
cin>>n;


for(int i=0; i<n; i++)
{
cin>>liczba;
t[i]=liczba;
}
for(int i=0; i<n; i++){
	
	
	suma += t[i];
	ilosc= i+1;
	srednia=(suma/ilosc);

}
cout<<"Srednia to: "<<srednia;
cout<<endl;
for(int i=0; i<n-1; i++){
	
	
	suma += t[i];
	ilosc= i+1;
	sumapary=t[i]+t[i+1];

}


}
 

Doszedlem do czegos takiego.

0
#include <iostream>

using namespace std;

int main()
{
    int tab[3] = {7, 2, 1};
    int wynik = 0;
    for (int i =0; i < 3;i++)
    {
        int tymcz = tab[i] + tab[i+1];
        if (tymcz > wynik) wynik = tymcz;
    }
    cout << "największa para to " << wynik;
}

Albo bez tablicy

#include <iostream>

using namespace std;

int main()
{
    int liczba = 0, wynik = 0, pop = 0;
    cin >> liczba;
    pop = liczba;
    for (int i =1; i < 3;i++)
    {
        cin >> liczba;
        int tymcz = pop + liczba;
        if (tymcz > wynik) wynik = tymcz;
        pop = liczba;
    }
    cout << "największa para to " << wynik;
}

0
sig napisał(a):
#include <iostream>

using namespace std;

int main()
{
    int tab[3] = {7, 2, 1};
    int wynik = 0;
    for (int i =0; i < 3;i++)
    {
        int tymcz = tab[i] + tab[i+1];
        if (tymcz > wynik) wynik = tymcz;
    }
    cout << "największa para to " << wynik;
}

Czy moglbys dokladniej wytlumaczyc strukture

if (tymcz > wynik) wynik = tymcz 

?

0

Poza tym teraz program szuka najwiekszej wsrod par ---> pierwsza liczba i druga, druga i trzecia, trzecia i czwarta itp...

a ma byc pierwsza i druga, trzecia i czwarta itd...

1
 if (tymcz > wynik) wynik = tymcz; 

Jeżeli zmienna tymcz jjest większa od wynik to przypisz ją do zmiennej wynik. Jeśli masz krótki kod możesz dać ifa tak jak kolega w jednej linijce bez {}

Chcesz aby przykładowo dla zbioru {12,2,21,0,2,1} uzyskać średnią arytmetyczną każdej pary czyli {6,10.5,1.5} ?

Jeśli tak to utwórz dodatkową tablicę o rozmiarze n/2 i przechowuj tam kolejne wyniki. Lecisz kolejno tablicą tylko zamiast o jeden krok zwiększasz o dwa. Czyli na początek masz t[0] i t[1] w następnej iteracji masz t[2] i t[3].

Możesz też zwiększyć na koniec pętli wartość i o 1.

Do drugiej tablicy kolejno wpychasz wyniki średniej arytmetycznej.

1
bialas998 napisał(a):

Poza tym teraz program szuka najwiekszej wsrod par ---> pierwsza liczba i druga, druga i trzecia, trzecia i czwarta itp...

a ma byc pierwsza i druga, trzecia i czwarta itd...

Starczy w forze zamiast i++ dać i = i+2 i już powinno być jak piszesz. A w przypadku wersji bez tablicy dać 2 cin-y w końcu ma być ich "na sztywno" 100 czyli parzysta liczba.

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