упр.01 задача 1

Предадени решения

Краен срок:
15.10.2025 23:59
Точки:
1

Срокът за предаване на решения е отминал

// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
assert_eq!(calc(11, 23, '+'), 34);
assert_eq!(calc(11, 23, '-'), -12);
assert_eq!(calc(11, 23, '*'), 253);
assert_eq!(calc(253, 11, '/'), 23);
assert_eq!(calc(250, 11, '/'), 22);
assert_eq!(calc(121, 0, '/'), 0);
assert_eq!(calc(11, 23, '^'), 42);
assert_eq!(calc(11, 23, 'y'), 42);
}

Напиши функция

fn calc(a: i32, b: i32, op: char) -> i32 {
    // твой код
}

Условия:

  • ако op е '+' → върни a + b
  • ако е '-' → върни a - b
  • ако е '*' → върни a * b
  • ако е '/' и b не е 0 → върни a / b
  • ако е '/' и b е 0 → върни 0
  • иначе → върни 42

П.С. игнорирайте линка с указания за домашни - добавя се автоматично и не е актуален в случая.

Задължително прочетете (или си припомнете): Указания за предаване на домашни

Погрижете се решението ви да се компилира с базовия тест:

// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
assert_eq!(calc(11, 23, '+'), 34);
assert_eq!(calc(11, 23, '-'), -12);
assert_eq!(calc(11, 23, '*'), 253);
assert_eq!(calc(253, 11, '/'), 23);
assert_eq!(calc(250, 11, '/'), 22);
assert_eq!(calc(121, 0, '/'), 0);
assert_eq!(calc(11, 23, '^'), 42);
assert_eq!(calc(11, 23, 'y'), 42);
}