Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей на раст

Arystan 135 Ученик (22), закрыт 10 месяцев назад
Задача электронные часы(кто не знает загуглите).
Вот мой код:
use std::io;
fn main() {
let mut inp1 = String::new();
io::stdin().read_line(&mut inp1);
let x: i128 = inp1.trim().parse().expect("");
let h = x / 3600;
let m = x / 60;
let s = x % 60;
println!("{}:{}:{}", h, m, s);
}

При вводе 3602 он выводет не 1:00:02 а 1:60:2. В чем ошибка?
Лучший ответ
Арман Жарасканов Ученик (160) 10 месяцев назад
Проблема в вашем коде заключается в неправильном вычислении минут. Вот как можно исправить код, чтобы он корректно выводил время в формате "часы:минуты:секунды"


 use std::io; 

fn main() {
let mut inp1 = String::new();
io::stdin().read_line(&mut inp1).expect("Failed to read line");
let x: i128 = inp1.trim().parse().expect("Please enter a number");

let h = x / 3600;
let m = (x % 3600) / 60;
let s = x % 60;

println!("{:02}:{:02}:{:02}", h, m, s);
}
Изменения, внесенные в код:

Вычисление часов остается таким же: let h = x / 3600;. Это дает количество полных часов в x секундах.

Для вычисления минут мы используем (x % 3600) / 60. x % 3600 дает остаток от деления x на 3600, то есть количество секунд, которые не вошли в полные часы. Деление на 60 дает количество полных минут в этом остатке.

Вычисление секунд остается таким же: let s = x % 60;. Это дает остаток от деления x на 60, то есть количество секунд, которые не вошли в полные минуты.

Теперь при вводе 3602 программа должна корректно вывести 01:00:02, что соответствует 1 часу, 0 минутам и 2 секундам.
Взял из ChatGPT. За достоверность не ручаюсь)
Остальные ответы
Che Ncy Профи (830) 10 месяцев назад
я не играю в раст, там читеров много
Роман Исмагилов Профи (593) 10 месяцев назад
Я учу питон и си++ не знаю если можешь преобразовать с Rust то помогу
Алекс Куха Высший разум (477040) 10 месяцев назад
Задача простейшая и у неё одинаковое решение для практически любого синтаксиса. Если из вопроса убрать руст, то решение найдётся на раз
Похожие вопросы