Menu
Coddy logo textTech

Yaygın Dizi İşlemleri

Coddy'nin C++ Journey'sinin Temeller bölümünün bir parçası — ders 66 / 74.

İşte bazı yaygın dizi işlemleri:

  • Bir dizideki tüm elemanların toplamını bulun:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}
std::cout << "Sum: " << sum;
  • Bir dizideki öğelerin ortalamasını bulun:
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;
  • Bir dizideki en büyük elemanı bulun:
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;
  • Bir dizideki minimum elemanı bulun:
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

Görev

Kolay

Girdi olarak bir double dizisi ve dizinin boyutunu alan ve aşağıdaki işlemleri gerçekleştiren calculateStats adında bir fonksiyon oluşturun:

  1. Dizideki tüm elemanların toplamını hesaplar.
  2. Dizideki elemanların ortalamasını hesaplar.
  3. Dizideki maksimum elemanı bulur.
  4. Dizideki minimum elemanı bulur.

Fonksiyon; toplam, ortalama, maksimum ve minimum değerlerini sırasıyla içeren bir double dizisi döndürmelidir.


Önemli notlar:
  • Döngünüzü kontrol etmek için size parametresini kullanın — std::size() fonksiyonunu kullanmayın.
  • max ve min değerlerini başlatmak için onları arr[0] ile başlatın — bu, dizi yalnızca negatif sayılar içerdiğinde bile doğru çalışır.
  • main() içindeki önceden yazılmış kod zaten new kullanarak dinamik bir dizi tahsis eder ve delete[] ile serbest bırakır — sizin sadece fonksiyonunuzun içinde new double[4] kullanarak sonuç dizisini tahsis etmeniz ve döndürmeniz yeterlidir.

Önerilen yaklaşım:
  1. sum = 0, max = arr[0] ve min = arr[0] olarak başlatın.
  2. i = 0'dan i < size'a kadar döngü kurun, toplamı biriktirin ve gerektiğinde max/min değerlerini güncelleyin.
  3. Ortalamayı sum / size olarak hesaplayın.
  4. new double[4] ile yeni bir dizi tahsis edin, dört sonucu sırasıyla saklayın ve döndürün.

Kopya kağıdı

C++'ta yaygın dizi işlemleri:

Tüm öğelerin toplamı:

int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}

Öğelerin ortalaması:

int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
    sum += number;
}
double average = sum / std::size(numbers);

Maksimum öğe:

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];
    }
}

Minimum öğe:

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];
    }
}

Kendin dene

#include <iostream>

double* calculateStats(double arr[], int size) {
    // newArr içine kaydetmeden önce 4 değeri hesaplamanız gerekecek
    // Toplam (0'dan başla), max ve min (her ikisi de arr[0]'dan başla) için değişkenleri başlatın
    // Diziyi yinelemek için bir for döngüsü kullanın
    // Döngü içinde:
    //   - Her elemanı toplama ekleyin
    //   - Her elemanı max ile karşılaştırın ve daha büyükse güncelleyin
    //   - Her elemanı min ile karşılaştırın ve daha küçükse güncelleyin
    // Ortalama = toplam / boyut hesaplayın (döngüden sonra)
    

    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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler