Menu
Coddy logo textTech

Usuwanie zadania

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 18 z 66.

challenge icon

Wyzwanie

Łatwy

Otrzymasz trzy dane wejściowe: najpierw listę istniejących zadań rozdzielonych przecinkami, następnie numer zadania do usunięcia (indeksowanie od 1), a na końcu nowe zadanie do dodania po usunięciu. Wczytaj wszystkie dane, utwórz tablicę zadań, usuń wskazane zadanie, dodaj nowe zadanie i wyświetl zaktualizowaną listę zadań.

Wymagania:

  • Wczytaj pierwsze dane wejściowe zawierające opisy zadań rozdzielone przecinkami (np. Buy groceries,Call dentist,Finish homework)
  • Podziel ciąg znaków po przecinkach, aby uzyskać pojedyncze zadania
  • Utwórz modyfikowalny wektor i dodaj do niego każde zadanie
  • Wczytaj drugie dane wejściowe i zamień je na liczbę całkowitą (numer zadania do usunięcia, z indeksowaniem od 1)
  • Przekształć indeks od 1 na indeks od 0 i użyj .remove(), aby usunąć zadanie o tym indeksie
  • Wczytaj trzecie dane wejściowe zawierające nowe zadanie do dodania
  • Użyj .push(), aby dodać nowe zadanie do wektora
  • Wypisz łączną liczbę zadań w formacie: Total tasks: X
  • Wypisz każde zadanie w osobnym wierszu w formacie: Task: [task description]

Dane wejściowe:

  • Pierwszy wiersz: opisy zadań rozdzielone przecinkami (np. Buy groceries,Call dentist,Finish homework)
  • Drugi wiersz: liczba całkowita oznaczająca numer zadania do usunięcia (indeksowanie od 1)
  • Trzeci wiersz: nowe zadanie do dodania (np. Study for exam)

Dane wyjściowe:

  • Pierwszy wiersz: Total tasks: X, gdzie X oznacza łączną liczbę zadań po usunięciu i dodaniu
  • Kolejne wiersze: każde zadanie wypisane jako Task: [task description]

Spróbuj swoich sił

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

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Wczytaj zadania oddzielone przecinkami
    let tasks_input = lines.next().unwrap().unwrap();
    
    // Wczytaj numer zadania do usunięcia (indeksowanie od 1)
    let task_to_remove = lines.next().unwrap().unwrap();
    let task_number: usize = task_to_remove.trim().parse().unwrap();
    
    // Wczytaj nowe zadanie do dodania
    let new_task = lines.next().unwrap().unwrap();
    
    // TODO: Napisz swój kod poniżej
    // Podziel tasks_input według przecinków i utwórz modyfikowalny wektor
    // Usuń zadanie o podanym indeksie (przelicz indeksowanie od 1 na indeksowanie od 0)
    // Dodaj nowe zadanie do wektora
    
    // Wyświetl wyniki
    // Wyświetl łączną liczbę zadań w formacie: Total tasks: X
    // Wyświetl każde zadanie w formacie: Task: [opis zadania]
}

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Rust online