Menu
Coddy logo textTech

Fonksiyon Argümanı Olarak Diziler

Coddy'nin C Journey'sinin Fundamentals bölümünün bir parçası — ders 58 / 63.

Diziler, C'de fonksiyonlara argüman olarak aktarılabilir. Bir dizi bir fonksiyona aktarıldığında, aslında aktarılan şey ilk elemanın bellek adresidir.

Bir dizi ve bu diziyi argüman olarak alan bir fonksiyon tanımlayın:

void displayArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

Bir dizi oluşturun ve fonksiyonu çağırın:

int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);

Bir diziyi bir fonksiyona geçirdiğinizde, fonksiyon içinde dizide yapılan değişiklikler orijinal diziyi etkileyecektir:

void doubleValues(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

// Fonksiyonu çağır
doubleValues(numbers, 5);
// Şimdi numbers şunları içerir: {20, 40, 60, 80, 100}
challenge icon

Görev

Kolay

İki argüman alan sumArray adında bir fonksiyon oluşturun:

  • Bir tam sayı dizisi (arr).
  • Dizinin boyutunu temsil eden bir tam sayı (size).

Fonksiyon, dizideki tüm elemanların toplamını hesaplamalı ve döndürmelidir.

Ardından, main fonksiyonu içerisinde:

  1. Bir n tam sayısı (dizinin boyutu) okuyun.
  2. n tane tam sayı okuyun ve bunları bir dizide saklayın.
  3. Dizi ile birlikte sumArray fonksiyonunu çağırın.
  4. Toplamı şu formatta yazdırın: "Sum: X" (burada X toplamdır).

Kopya kağıdı

Diziler fonksiyonlara referans yoluyla (ilk elemanın bellek adresi) aktarılır:

void displayArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

Fonksiyonu dizi adı ve boyutuyla çağırın:

int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);

Fonksiyon içinde dizide yapılan değişiklikler orijinal diziyi etkiler:

void doubleValues(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

Kendin dene

#include <stdio.h>

// sumArray fonksiyonunuzu buraya yazın

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // sumArray fonksiyonunu çağırın ve sonucu yazdırın
    
    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.

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