Typowe operacje na tablicach
Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 66 z 74.
Oto kilka typowych operacji na tablicach:
- Znajdź sumę wszystkich elementów tablicy:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}
std::cout << "Sum: " << sum;- Oblicz średnią elementów tablicy:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
sum += number;
}
double average = sum / std::size(numbers);
std::cout << "Average: " << average;- Znajdź element maksymalny w tablicy:
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
std::cout << "Max: " << max;- Znajdź element minimalny w tablicy:
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}
std::cout << "Min: " << min;Wyzwanie
ŁatwyUtwórz funkcję o nazwie calculateStats, która przyjmuje tablicę wartości typu double oraz rozmiar tablicy jako dane wejściowe i wykonuje następujące operacje:
- Oblicza sumę wszystkich elementów tablicy.
- Oblicza średnią elementów tablicy.
- Znajduje największy element tablicy.
- Znajduje najmniejszy element tablicy.
Funkcja powinna zwracać tablicę wartości typu double zawierającą kolejno sumę, średnią, maksimum i minimum.
Ważne uwagi:
- Użyj parametru
size, aby kontrolować pętlę: nie używajstd::size(). - Aby zainicjalizować
maximin, ustaw je naarr[0]. To działa poprawnie nawet wtedy, gdy tablica zawiera wyłącznie liczby ujemne. - Wstępnie napisany kod w
main()już przydziela pamięć dla tablicy dynamicznej za pomocąnewi zwalnia ją za pomocądelete[]. W swojej funkcji musisz jedynie przydzielić pamięć dla tablicy wyników za pomocąnew double[4]i ją zwrócić. Uwaga: wskaźniki i pamięć dynamiczna z użyciemnewzostaną szczegółowo omówione w późniejszej sekcji. Tutaj wystarczy zastosować pokazany wzorzecnew double[4].
Proponowane podejście:
- Zainicjalizuj
sum = 0,max = arr[0]imin = arr[0]. - Wykonaj pętlę od
i = 0doi < size, sumując wartości i w razie potrzeby aktualizując max/min. - Oblicz średnią jako
sum / size. - Przydziel pamięć dla nowej tablicy za pomocą
new double[4], zapisz w niej kolejno cztery wyniki i zwróć ją.
Spróbuj swoich sił
#include <iostream>
double* calculateStats(double arr[], int size) {
// Przed zapisaniem ich w newArr musisz obliczyć 4 wartości
// Zainicjalizuj zmienne sum (wartość początkowa 0), max i min (obie z wartością początkową arr[0])
// Użyj pętli for, aby przejść przez tablicę
// Wewnątrz pętli:
// - Dodaj każdy element do sum
// - Porównaj każdy element z max i zaktualizuj max, jeśli element jest większy
// - Porównaj każdy element z min i zaktualizuj min, jeśli element jest mniejszy
// Oblicz average = sum / size (po zakończeniu pętli)
double* newArr = new double[4];
newArr[0] = sum;
newArr[1] = average;
newArr[2] = max;
newArr[3] = min;
return newArr;
}
int main() {
int n;
std::cin >> n;
std::cin.ignore();
double arr[n];
for (int i = 0; i < n; i++) {
double val;
std::cin >> val;
arr[i] = val;
}
double* stats = calculateStats(arr, n);
std::cout << "Sum: " << stats[0] << std::endl;
std::cout << "Average: " << stats[1] << std::endl;
std::cout << "Maximum: " << stats[2] << std::endl;
std::cout << "Minimum: " << stats[3] << std::endl;
delete[] stats;
return 0;
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 1
Operatory arytmetyczneOperator moduloInkrementacja/dekrementacjaPostinkrementacja/postdekrementacjaSkrócone operatory arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawy wejścia/wyjścia
Instrukcja coutInstrukcja cinWczytywanie ciągu znakówPowtórka — do 120Powtórka — prawda czy fałsz3Zmienne, część 2
Deklarowanie typówKonwencje nazewnictwaPowtórka — inicjalizacja zmiennychKonwersja typów, część 1Konwersja typów, część 26Podejmowanie decyzji
Instrukcja ifIf - elseInstrukcja switchOperator warunkowyPowtórzenie: if - elseZagnieżdżone if - elsePoćwicz samodzielnie: Kompilator C++ online