Rangkuman: Menelusuri array dengan pointer
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 11 dari 63.
Tantangan
MudahTulis program C yang mengimplementasikan fungsi untuk menghitung jumlah semua elemen dalam array bilangan bulat menggunakan aritmetika pointer dan kesetaraan array-pointer. Programmu harus:
- Membuat fungsi bernama
calculateSumyang menerima dua parameter:- Pointer ke bilangan bulat (
int *arr) yang mewakili array - Bilangan bulat (
size) yang mewakili jumlah elemen dalam array
- Pointer ke bilangan bulat (
- Di dalam fungsi
calculateSum:- Inisialisasi variabel
sumdengan nilai 0 - Buat variabel pointer
ptrdan atur agar menunjuk ke awal array - Gunakan perulangan untuk menelusuri array dengan aritmetika pointer
- Pada setiap iterasi, tambahkan nilai yang ditunjuk oleh
ptrkesum - Tingkatkan pointer untuk berpindah ke elemen berikutnya
- Kembalikan jumlah yang dihitung
- Inisialisasi variabel
- Di dalam fungsi
main:- Baca bilangan bulat
nyang mewakili ukuran array - Deklarasikan array bilangan bulat dengan ukuran
n - Baca
nbilangan bulat dari input untuk mengisi array - Panggil fungsi
calculateSumdengan array dan ukurannya - Cetak hasil dengan format: "Sum: [value]"
- Baca bilangan bulat
Fungsi harus menggunakan aritmetika pointer untuk menelusuri array. Jangan gunakan notasi indeks array seperti arr[i]. Sebagai gantinya, gunakan operasi dereferensi dan peningkatan pointer untuk mengakses elemen array.
Contohnya, jika inputnya adalah:
5
10 20 30 40 50Outputmu harus:
Sum: 150Tantangan ini menguji pemahamanmu tentang cara fungsi menerima array sebagai parameter pointer, cara menggunakan aritmetika pointer untuk menelusuri array secara efisien, dan cara nama array secara otomatis dikonversi menjadi pointer saat diteruskan ke fungsi.
Coba sendiri
#include <stdio.h>
// TODO: Tulis fungsi calculateSum-mu di sini
int main() {
int n;
scanf("%d", &n);
int arr[n];
// Baca elemen array
for(int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// TODO: Panggil fungsi calculateSum dan simpan hasilnya
// TODO: Cetak hasilnya dengan format "Sum: [value]"
return 0;
}Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online