Menu
CoddyTech

Operasi Umum pada array

Termasuk bagian Dasar-Dasar dalam perjalanan C++ di Coddy. Pelajaran 66 dari 74.

Berikut beberapa operasi array yang umum:

  • Temukan jumlah semua elemen dalam array:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}
std::cout << "Sum: " << sum;
  • Temukan rata-rata elemen dalam array:
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;
  • Temukan elemen maksimum dalam array:
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;
  • Temukan elemen minimum dalam array:
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;
challenge icon

Tantangan

Mudah

Buat fungsi bernama calculateStats yang menerima array berisi bilangan double dan ukuran array sebagai input, lalu melakukan operasi berikut:

  1. Menghitung jumlah semua elemen dalam array.
  2. Menghitung rata-rata elemen dalam array.
  3. Mencari elemen maksimum dalam array.
  4. Mencari elemen minimum dalam array.

Fungsi harus mengembalikan array berisi bilangan double yang mencakup jumlah, rata-rata, nilai maksimum, dan nilai minimum, secara berurutan.


Catatan penting:
  • Gunakan parameter size untuk mengendalikan perulanganmu: jangan gunakan std::size().
  • Untuk menginisialisasi max dan min, mulai dengan nilai arr[0]. Ini tetap berfungsi dengan benar meskipun array hanya berisi angka negatif.
  • Kode yang sudah ditulis sebelumnya dalam main() sudah mengalokasikan array dinamis menggunakan new dan membebaskannya dengan delete[]. Kamu hanya perlu mengalokasikan array hasil di dalam fungsimu menggunakan new double[4] lalu mengembalikannya. Catatan: pointer dan memori dinamis dengan new akan dibahas secara mendalam di bagian selanjutnya. Di sini, kamu hanya perlu mengikuti pola new double[4] yang ditunjukkan.

Pendekatan yang disarankan:
  1. Inisialisasi sum = 0, max = arr[0], dan min = arr[0].
  2. Lakukan perulangan dari i = 0 hingga i < size, akumulasikan jumlahnya dan perbarui max/min sesuai kebutuhan.
  3. Hitung rata-rata sebagai sum / size.
  4. Alokasikan array baru dengan new double[4], simpan keempat hasil secara berurutan, lalu kembalikan array tersebut.

Coba sendiri

#include <iostream>

double* calculateStats(double arr[], int size) {
    // Kamu perlu menghitung 4 nilai sebelum menyimpannya di newArr
    // Inisialisasi variabel sum (mulai dari 0), max, dan min (keduanya mulai dari arr[0])
    // Gunakan for loop untuk menelusuri array
    // Di dalam loop:
    //   - Tambahkan setiap elemen ke sum
    //   - Bandingkan setiap elemen dengan max dan perbarui max jika elemen lebih besar
    //   - Bandingkan setiap elemen dengan min dan perbarui min jika elemen lebih kecil
    // Hitung average = sum / size (setelah loop)
    

    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;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler C++ online