Menu
Coddy logo textTech

Rimuovere un'attività

Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 18 di 66.

challenge icon

Sfida

Facile

Riceverai tre input: per primo, un elenco di attività esistenti separate da virgole; per secondo, il numero di un'attività da rimuovere (indice a partire da 1); e per terzo, una nuova attività da aggiungere dopo la rimozione. Leggi tutti gli input, crea un vettore a partire dalle attività, rimuovi l'attività specificata, aggiungi la nuova attività e visualizza l'elenco aggiornato.

Requisiti:

  • Leggi il primo input contenente descrizioni di attività separate da virgole (ad es., Buy groceries,Call dentist,Finish homework)
  • Dividi la stringa in corrispondenza delle virgole per ottenere le singole attività
  • Crea un vettore mutabile e aggiungici ogni attività
  • Leggi il secondo input e convertilo in un intero (il numero dell'attività da rimuovere, con indice a partire da 1)
  • Converti l'indice a partire da 1 in un indice a partire da 0 e usa .remove() per rimuovere l'attività in corrispondenza di quell'indice
  • Leggi il terzo input contenente una nuova attività da aggiungere
  • Usa .push() per aggiungere la nuova attività al vettore
  • Stampa il numero totale di attività nel formato: Total tasks: X
  • Stampa ogni attività su una riga separata nel formato: Task: [task description]

Input:

  • Prima riga: descrizioni di attività separate da virgole (ad es., Buy groceries,Call dentist,Finish homework)
  • Seconda riga: un intero che rappresenta il numero dell'attività da rimuovere (indice a partire da 1)
  • Terza riga: una nuova attività da aggiungere (ad es., Study for exam)

Output:

  • Prima riga: Total tasks: X, dove X è il numero totale di attività dopo la rimozione e l'aggiunta
  • Righe successive: ogni attività stampata come Task: [task description]

Provalo tu

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

fn main() {
    let stdin = io::stdin();
    let mut lines = stdin.lock().lines();
    
    // Leggi le attività separate da virgole
    let tasks_input = lines.next().unwrap().unwrap();
    
    // Leggi il numero dell'attività da rimuovere (indicizzazione a partire da 1)
    let task_to_remove = lines.next().unwrap().unwrap();
    let task_number: usize = task_to_remove.trim().parse().unwrap();
    
    // Leggi la nuova attività da aggiungere
    let new_task = lines.next().unwrap().unwrap();
    
    // TODO: Scrivi il tuo codice qui sotto
    // Dividi tasks_input in corrispondenza delle virgole e crea un vettore modificabile
    // Rimuovi l'attività all'indice specificato (converti da base 1 a base 0)
    // Aggiungi la nuova attività al vettore
    
    // Mostra i risultati
    // Stampa il numero totale di attività nel formato: Total tasks: X
    // Stampa ogni attività nel formato: Task: [descrizione dell'attività]
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Rust online