Menu
CoddyTech

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ı bul:
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 öğeyi bul:
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 öğeyi 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

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

  1. Dizideki tüm elemanların toplamını hesaplar.
  2. Dizideki elemanların ortalamasını hesaplar.
  3. Dizideki en büyük elemanı bulur.
  4. Dizideki en küçük elemanı bulur.

Fonksiyon, toplamı, ortalamayı, en büyük değeri ve en küçük değeri bu sırayla içeren bir double dizisi döndürmelidir.


Önemli notlar:
  • Döngünüzü kontrol etmek için size parametresini kullanın: std::size() kullanmayın.
  • max ve min değerlerini başlatmak için arr[0] ile başlayın. Dizi yalnızca negatif sayılar içerse bile bu doğru şekilde çalışır.
  • main() içindeki önceden yazılmış kod, new kullanarak dinamik bir dizi ayırır ve onu delete[] ile serbest bırakır. Yalnızca fonksiyonunuzun içinde new double[4] kullanarak sonuç dizisini ayırmanız ve döndürmeniz gerekir. Not: İşaretçiler ve new ile dinamik bellek konusu ilerideki bir bölümde ayrıntılı olarak ele alınacaktır. Burada yalnızca gösterilen new double[4] kalıbını izlemeniz yeterlidir.

Önerilen yaklaşım:
  1. sum = 0, max = arr[0] ve min = arr[0] değerlerini başlatın.
  2. i = 0 değerinden i < size koşuluna kadar döngü kurarak 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 ayırın, dört sonucu sırasıyla diziye kaydedin ve diziyi döndürün.

Kendin dene

#include <iostream>

double* calculateStats(double arr[], int size) {
    // Değerleri newArr içinde saklamadan önce 4 değer hesaplamanız gerekecek
    // sum (0'dan başlar), max ve min (ikisi de arr[0] değerinden başlar) değişkenlerini başlatın
    // Dizi üzerinde gezinmek için bir for döngüsü kullanın
    // Döngünün içinde:
    //   - Her elemanı sum değişkenine ekleyin
    //   - Her elemanı max ile karşılaştırın ve daha büyükse max değerini güncelleyin
    //   - Her elemanı min ile karşılaştırın ve daha küçükse min değerini güncelleyin
    // average = sum / size değerini 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

Kendi başına pratik yap: Online C++ derleyicisi