CodeBlanks Logo Icon CodeBlanks

Sepeti listeleme

  • C kursu
  • Başlangıç
  • Ders 51/116
  • 6 dk

Sepetteki ürünleri formatlı yazdıran fonksiyonu yazarsın.

cart_list fonksiyonu

Bu derste cart_list fonksiyonunu yazacağız. Bu fonksiyon sepetteki tüm öğeleri biçimli biçimde yazdırır.

void cart_list(void) {
    for (int i = 0; i < cart_size; i++) {
        printf("%s %.2f x %d = %.2f\n",
            cart[i].name, cart[i].price, cart[i].qty,
            cart[i].price * cart[i].qty);
    }
}

Her satır bir öğeyi gösterir: ad, fiyat, miktar ve ara toplam. Bu çıktı kullanıcıya sepette ne olduğunu anlatır. for ile dolaşıp her satırı yazdırırız.

Biçimli çıktı

Para değerlerini yazdırırken %.2f kullanmak iyi bir alışkanlıktır; bu, iki ondalık basamak gösterir. Para birimi genelde iki basamakla gösterilir.

printf("%s %.2f x %d = %.2f\n",
    "Elma", 2.50, 3, 7.50);
// Çıktı: Elma 2.50 x 3 = 7.50

Burada %s ad, %.2f fiyat, %d miktar ve son %.2f ara toplam. Belirteç sırası değişken sırasıyla aynı olmalı.

Uygulama Sepeti listele

cart_list fonksiyonunu yaz: void cart_list(void). for (int i = 0; i < cart_size; i++) ile her öğeyi printf("%s %.2f x %d = %.2f\n", cart[i].name, cart[i].price, cart[i].qty, cart[i].price * cart[i].qty); ile yazdır. main zaten cart_list() çağrıyor; sen yalnızca fonksiyonu tamamla. Beklenen çıktı: Elma 2.50 x 3 = 7.50 / Ekmek 5.00 x 1 = 5.00.

Başlangıç kodu

main.c
#include <stdio.h>
#include <string.h>

#define MAX_ITEMS 10

struct CartItem {
    char name[32];
    double price;
    int qty;
};

struct CartItem cart[MAX_ITEMS];
int cart_size = 0;

void cart_add(const char *name, double price, int qty) {
    if (cart_size >= MAX_ITEMS) return;
    strcpy(cart[cart_size].name, name);
    cart[cart_size].price = price;
    cart[cart_size].qty = qty;
    cart_size++;
}

double cart_subtotal(void) {
    double sum = 0;
    for (int i = 0; i < cart_size; i++) {
        sum += cart[i].price * cart[i].qty;
    }
    return sum;
}

// cart_list fonksiyonunu buraya yaz

int main(void) {
    cart_add("Elma", 2.50, 3);
    cart_add("Ekmek", 5.00, 1);
    cart_list();
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <string.h>

#define MAX_ITEMS 10

struct CartItem {
    char name[32];
    double price;
    int qty;
};

struct CartItem cart[MAX_ITEMS];
int cart_size = 0;

void cart_add(const char *name, double price, int qty) {
    if (cart_size >= MAX_ITEMS) return;
    strcpy(cart[cart_size].name, name);
    cart[cart_size].price = price;
    cart[cart_size].qty = qty;
    cart_size++;
}

double cart_subtotal(void) {
    double sum = 0;
    for (int i = 0; i < cart_size; i++) {
        sum += cart[i].price * cart[i].qty;
    }
    return sum;
}

void cart_list(void) {
    for (int i = 0; i < cart_size; i++) {
        printf("%s %.2f x %d = %.2f\n", cart[i].name, cart[i].price, cart[i].qty, cart[i].price * cart[i].qty);
    }
}

int main(void) {
    cart_add("Elma", 2.50, 3);
    cart_add("Ekmek", 5.00, 1);
    cart_list();
    return 0;
}

Beklenen çıktı

Elma 2.50 x 3 = 7.50
Ekmek 5.00 x 1 = 5.00

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Liste parçalarını eşleştir

Kavram Anlamı
%s Ad
%.2f Fiyat
%d Miktar
price * qty Ara toplam

2 cart_list ne yazdırır?

main.c
void cart_list(void) {
    for (...) {
        printf("%s %.2f x %d", ...);
    }
}
  • Yalnızca ad
  • Yalnızca fiyat
  • Yalnızca miktar
  • Ad, fiyat, miktar ve ara toplam Doğru cevap

Açıklama: cart_list her öğenin tüm bilgilerini yazdırır.

3 Öğe adını yazdır

Soru
printf("____ %.2f x %d = %.2f
", cart[i].name, cart[i].price, cart[i].qty, cart[i].price * cart[i].qty);
Cevap
printf("%s %.2f x %d = %.2f
", cart[i].name, cart[i].price, cart[i].qty, cart[i].price * cart[i].qty);

Açıklama: %s dize (öğe adı) için kullanılır.

Başlangıç bölümündeki tüm dersler