Dizi Algoritmaları
Coddy'nin C Journey'sinin Fundamentals bölümünün bir parçası — ders 59 / 63.
Dizi algoritmaları, dizi verilerini işlemek için temel tekniklerdir. Bazı yaygın dizi işlemlerini öğrenelim.
Bir dizideki en büyük değeri bulma:
// Bir diziyi ilklendir
int numbers[] = {4, 9, 2, 7, 5};
// Başlangıç maksimum değerini ilk elemana ayarla
int max = numbers[0];// Diğer öğelerle karşılaştır
for (int i = 1; i < 5; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
// Şimdi max en büyük değeri (9) içeriyorMinimum değeri bulmak benzer şekilde çalışır:
// Başlangıç min değerini ilk elemana ayarla
int min = numbers[0];
// Diğer elemanlarla karşılaştır
for (int i = 1; i < 5; i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}
// Şimdi min en küçük değeri (2) içeriyorBir dizideki tüm elemanları toplama:
int sum = 0;
// Her bir öğeyi toplama ekle
for (int i = 0; i < 5; i++) {
sum += numbers[i];
}
// Şimdi sum toplamı (27) içeriyorGörev
KolayBir tam sayı dizisindeki tüm elemanların ortalamasını hesaplayan findAverage adında bir fonksiyon yazın.
Fonksiyon şunları yapmalıdır:
- Parametre olarak bir tam sayı dizisi ve boyutunu almalı
- Tüm elemanların toplamını hesaplamalı
- Ortalamayı bulmak için toplamı eleman sayısına bölmeli
- Ortalamayı bir float olarak döndürmeli
Ortalamayı hesapladıktan sonra, sonucu tam olarak 2 ondalık basamakla şu şekilde yazdırın: printf("Average: %.2f\n", average);
Kopya kağıdı
Maksimum, minimum ve toplam değerleri bulmak için yaygın dizi algoritmaları:
Maksimum değeri bulma:
int max = numbers[0];
for (int i = 1; i < size; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}Minimum değeri bulma:
int min = numbers[0];
for (int i = 1; i < size; i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}Tüm öğeleri toplama:
int sum = 0;
for (int i = 0; i < size; i++) {
sum += numbers[i];
}Bir float değerini 2 ondalık basamakla yazdırmak için: printf("Average: %.2f\n", average);
Kendin dene
#include <stdio.h>
// findAverage fonksiyonunuzu buraya yazın
int main() {
int size;
scanf("%d", &size);
int numbers[size];
// Dizi elemanlarını oku
for (int i = 0; i < size; i++) {
scanf("%d", &numbers[i]);
}
// Fonksiyonunuzu çağırın ve sonucu yazdırın
float average = findAverage(numbers, size);
printf("Average: %.2f\n", average);
return 0;
}
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
2Değişkenler
Veri TipleriTam Sayı (Integer)Float - DoubleKarakterlerBooleanlarSabitlerprintf TemelleriDeğişken İsimlendirme KurallarıTip Dönüşümü Bölüm 1Tip Dönüşümü Bölüm 2Özet Meydan Okuması3Operatörler
Aritmetik OperatörlerModül OperatörüArtırma/AzaltmaAtama Operatörleriİlişkisel OperatörlerMantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Mantıksal Operatörler Bölüm 3Özet Meydan Okuması