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;Görev
KolayGirdi olarak bir double dizisi ve dizinin boyutunu alan ve aşağıdaki işlemleri gerçekleştiren calculateStats adında bir fonksiyon oluşturun:
- Dizideki tüm elemanların toplamını hesaplar.
- Dizideki elemanların ortalamasını hesaplar.
- Dizideki maksimum elemanı bulur.
- 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
sizeparametresini kullanın —std::size()fonksiyonunu kullanmayın. maxvemindeğ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 zatennewkullanarak dinamik bir dizi tahsis eder vedelete[]ile serbest bırakır — sizin sadece fonksiyonunuzun içindenew double[4]kullanarak sonuç dizisini tahsis etmeniz ve döndürmeniz yeterlidir.
Önerilen yaklaşım:
sum = 0,max = arr[0]vemin = arr[0]olarak başlatın.i = 0'dani < size'a kadar döngü kurun, toplamı biriktirin ve gerektiğinde max/min değerlerini güncelleyin.- Ortalamayı
sum / sizeolarak hesaplayın. 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;
}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
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüArtırma/AzaltmaSonradan Artırma/AzaltmaAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Giriş/Çıkış Temelleri
cout İfadesicin İfadesiString GirdisiÖzet - 120'ye KadarÖzet - Doğru veya Yanlış