Menu
Coddy logo textTech

Görev Silme

Coddy'nin Rust Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 18 / 66.

challenge icon

Görev

Kolay

Üç girdi alacaksınız: ilki mevcut görevlerin virgülle ayrılmış bir listesi; ikincisi kaldırılacak görev numarası (1 tabanlı indeksleme); üçüncüsü ise kaldırma işleminden sonra eklenecek yeni görevdir. Tüm girdileri okuyun, görevlerden bir vektör oluşturun, belirtilen görevi kaldırın, yeni görevi ekleyin ve güncellenmiş görev listesini görüntüleyin.

Gereksinimler:

  • Virgülle ayrılmış görev açıklamalarını içeren ilk girdiyi okuyun (ör. Buy groceries,Call dentist,Finish homework)
  • Ayrı görevleri elde etmek için dizeyi virgüllere göre bölün
  • Değiştirilebilir bir vektör oluşturun ve her görevi buna ekleyin
  • İkinci girdiyi okuyun ve bir tamsayıya dönüştürün (1 tabanlı indeksleme kullanılarak kaldırılacak görev numarası)
  • 1 tabanlı indeksi 0 tabanlıya dönüştürün ve bu indeksteki görevi kaldırmak için .remove() kullanın
  • Eklenecek yeni görevi içeren üçüncü girdiyi okuyun
  • Yeni görevi vektöre eklemek için .push() kullanın
  • Toplam görev sayısını şu biçimde yazdırın: Total tasks: X
  • Her görevi ayrı bir satırda şu biçimde yazdırın: Task: [task description]

Girdi:

  • İlk satır: Virgülle ayrılmış görev açıklamaları (ör. Buy groceries,Call dentist,Finish homework)
  • İkinci satır: Kaldırılacak görev numarasını belirten bir tamsayı (1 tabanlı indeksleme)
  • Üçüncü satır: Eklenecek yeni görev (ör. Study for exam)

Çıktı:

  • İlk satır: Kaldırma ve ekleme işlemlerinden sonraki toplam görev sayısının X olduğu Total tasks: X
  • Sonraki satırlar: Her görev Task: [task description] biçiminde yazdırılır

Kendin dene

use std::io::{self, BufRead};

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Virgülle ayrılmış görevleri oku
    let tasks_input = lines.next().unwrap().unwrap();
    
    // Kaldırılacak görev numarasını oku (1 tabanlı indeksleme)
    let task_to_remove = lines.next().unwrap().unwrap();
    let task_number: usize = task_to_remove.trim().parse().unwrap();
    
    // Eklenecek yeni görevi oku
    let new_task = lines.next().unwrap().unwrap();
    
    // TODO: Kodunuzu aşağıya yazın
    // tasks_input'u virgüllere göre ayırın ve değiştirilebilir bir vektör oluşturun
    // Belirtilen indeksteki görevi kaldırın (1 tabanlıyı 0 tabanlıya dönüştürün)
    // Yeni görevi vektöre ekleyin
    
    // Sonuçları yazdır
    // Toplam görev sayısını şu formatta yazdır: Total tasks: X
    // Her bir görevi şu formatta yazdır: Task: [task description]
}

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Rust derleyicisi