[C++] Operowanie na tablicy
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy
-
- Użytkownik
- Posty: 17
- Rejestracja: 2 lut 2015, o 19:52
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 12 razy
[C++] Operowanie na tablicy
Ale ja babole wale ... niech cie krew ...-- 3 lut 2015, o 19:09 --
Dobrze kombinuje ??? Mam problem ze zdefiniowaniem "ile"...
Ukryta treść:
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy
[C++] Operowanie na tablicy
Jest dość słabo.
Przede wszystkim proponuję zrobić tak. Nie pisz od raz 3 funkcji, tylko małymi kroczkami, jedną napisz, sprawdź, czy działa, wtedy zabieraj się do następnej.
Pierwszy błąd:
void nam mówi, że funkcja nie będzie nam nic zwracać, Ty jednak zwracasz ile/k.
To ogólnie nie ma najmniejszego sensu.
Z każdym obiegiem pętli zerujesz zmienna ile
Więc to co się wykona tutaj:
Ma sens tylko w ostatnim obiegu pętli.
Co jednak nie ma najmniejszego związku z tym co ta funkcja ma robić.
2. Funkcja "operacja" znajduje wartość średnią elementów tablicy nie większych od k
Proponuje abyś na samym początku napisał funkcję, która obliczy średnią wszystkich elementów, nie zwracamy uwagi na nie większych od k
Przede wszystkim proponuję zrobić tak. Nie pisz od raz 3 funkcji, tylko małymi kroczkami, jedną napisz, sprawdź, czy działa, wtedy zabieraj się do następnej.
Kod: Zaznacz cały
void operacja(int * tab, int k, int &ile)
{
for (int i=0;i<k;i++)
{
ile=0;
ile+=tab[i];
ile++;
}
return ile/k;
}
Kod: Zaznacz cały
void operacja(int * tab, int k, int &ile)
Kod: Zaznacz cały
return ile/k;
Kod: Zaznacz cały
ile=0;
ile+=tab[i];
ile++;
Z każdym obiegiem pętli zerujesz zmienna ile
Więc to co się wykona tutaj:
Kod: Zaznacz cały
ile+=tab[i];
ile++;
Co jednak nie ma najmniejszego związku z tym co ta funkcja ma robić.
2. Funkcja "operacja" znajduje wartość średnią elementów tablicy nie większych od k
Proponuje abyś na samym początku napisał funkcję, która obliczy średnią wszystkich elementów, nie zwracamy uwagi na nie większych od k
-
- Użytkownik
- Posty: 17
- Rejestracja: 2 lut 2015, o 19:52
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 12 razy
[C++] Operowanie na tablicy
Kod: Zaznacz cały
float operacja(float * tab, int s)
{
float ile=0;
int x;
for(x=0;x<=s-1;x++)
{
ile+=tab[x];
}
return ile/s;
}
Coś takiego ?
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy
[C++] Operowanie na tablicy
Już lepiej:
dlaczego?
Kod: Zaznacz cały
float operacja(float * tab, int s)
Kod: Zaznacz cały
float * tab
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy
[C++] Operowanie na tablicy
Jeśli mamy trzymać się tego, to tak:
Takie drobne poprawki:
skoro w tablicy mamy same liczby całkowite, to suma też ich jest całkowitą, ładniej będzie wyglądać moim zdaniem:
Ten zapis też jest dość brzydki:
lepiej będzie tak:
a najładniej:
Kod: Zaznacz cały
int tab[20];
Kod: Zaznacz cały
float ile=0;
Kod: Zaznacz cały
int ile=0;
Kod: Zaznacz cały
int x;
for(x=0;x<=s-1;x++)
Kod: Zaznacz cały
for(int x=0;x<=s-1;x++)
Kod: Zaznacz cały
for(int x=0;x<s;x++)
-
- Użytkownik
- Posty: 17
- Rejestracja: 2 lut 2015, o 19:52
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Podziękował: 12 razy
[C++] Operowanie na tablicy
Ukryta treść:
- Kacperdev
- Użytkownik
- Posty: 3260
- Rejestracja: 23 mar 2010, o 19:19
- Płeć: Mężczyzna
- Lokalizacja: Bydgoszcz
- Podziękował: 17 razy
- Pomógł: 686 razy
[C++] Operowanie na tablicy
Kod: Zaznacz cały
float operacja(int * tab, int s, int k)
{
int ile=0;
for(int x=0;x<s;x++)
{
if(tab[x]<=k) ile+=tab[x];
}
return ile/s;
}
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy
[C++] Operowanie na tablicy
Kacperdev, nie wiem czy celowo, czy nie ale zapomniałeś o jednej rzeczy. Trzeba jeszcze policzyć ile tych liczb jest.
- Kacperdev
- Użytkownik
- Posty: 3260
- Rejestracja: 23 mar 2010, o 19:19
- Płeć: Mężczyzna
- Lokalizacja: Bydgoszcz
- Podziękował: 17 razy
- Pomógł: 686 razy
[C++] Operowanie na tablicy
Kod: Zaznacz cały
float operacja(int * tab, int s, int k)
{
int t=0, ile=0;
for(int x=0;x<s;x++)
{
if(tab[x]<=k)
{
ile+=tab[x];
++t;
}
return ile/t;
}