summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoranand <anand.panchdhari@gmail.com>2025-11-18 22:40:54 +0530
committeranand <anand.panchdhari@gmail.com>2025-11-18 22:40:54 +0530
commit8597b29e143cdeae50eafae06e0d8ed900b25295 (patch)
tree065a09c30fa7087937d94f3207254dfe042de90a
parentf80fbca12e47014a314e5e931678529c28cd9fd8 (diff)
Completed till exercise 4
-rw-r--r--exercises/00_intro/intro2.rs2
-rw-r--r--exercises/01_variables/variables1.rs2
-rw-r--r--exercises/01_variables/variables2.rs2
-rw-r--r--exercises/01_variables/variables3.rs2
-rw-r--r--exercises/01_variables/variables4.rs2
-rw-r--r--exercises/01_variables/variables5.rs2
-rw-r--r--exercises/01_variables/variables6.rs2
-rw-r--r--exercises/02_functions/functions1.rs4
-rw-r--r--exercises/02_functions/functions2.rs2
-rw-r--r--exercises/02_functions/functions3.rs2
-rw-r--r--exercises/02_functions/functions4.rs2
-rw-r--r--exercises/02_functions/functions5.rs4
-rw-r--r--exercises/03_if/if1.rs1
-rw-r--r--exercises/03_if/if2.rs4
-rw-r--r--exercises/03_if/if3.rs4
-rw-r--r--exercises/04_primitive_types/primitive_types1.rs1
-rw-r--r--exercises/04_primitive_types/primitive_types2.rs2
-rw-r--r--exercises/04_primitive_types/primitive_types3.rs2
-rw-r--r--exercises/04_primitive_types/primitive_types4.rs2
-rw-r--r--exercises/04_primitive_types/primitive_types5.rs1
-rw-r--r--exercises/04_primitive_types/primitive_types6.rs2
-rw-r--r--exercises/quizzes/quiz1.rs4
22 files changed, 31 insertions, 20 deletions
diff --git a/exercises/00_intro/intro2.rs b/exercises/00_intro/intro2.rs
index c6cb645..03e376e 100644
--- a/exercises/00_intro/intro2.rs
+++ b/exercises/00_intro/intro2.rs
@@ -1,4 +1,4 @@
fn main() {
// TODO: Fix the code to print "Hello world!".
- printline!("Hello world!");
+ println!("Hello world!");
}
diff --git a/exercises/01_variables/variables1.rs b/exercises/01_variables/variables1.rs
index f83b44d..ec1bcac 100644
--- a/exercises/01_variables/variables1.rs
+++ b/exercises/01_variables/variables1.rs
@@ -1,6 +1,6 @@
fn main() {
// TODO: Add the missing keyword.
- x = 5;
+ let x = 5;
println!("x has the value {x}");
}
diff --git a/exercises/01_variables/variables2.rs b/exercises/01_variables/variables2.rs
index e2a3603..e2fd5d0 100644
--- a/exercises/01_variables/variables2.rs
+++ b/exercises/01_variables/variables2.rs
@@ -1,6 +1,6 @@
fn main() {
// TODO: Change the line below to fix the compiler error.
- let x;
+ let x = 10;
if x == 10 {
println!("x is ten!");
diff --git a/exercises/01_variables/variables3.rs b/exercises/01_variables/variables3.rs
index 06f35bb..45a8586 100644
--- a/exercises/01_variables/variables3.rs
+++ b/exercises/01_variables/variables3.rs
@@ -1,6 +1,6 @@
fn main() {
// TODO: Change the line below to fix the compiler error.
- let x: i32;
+ let x: i32 = 10;
println!("Number {x}");
}
diff --git a/exercises/01_variables/variables4.rs b/exercises/01_variables/variables4.rs
index 6c138b1..90d4ef0 100644
--- a/exercises/01_variables/variables4.rs
+++ b/exercises/01_variables/variables4.rs
@@ -1,6 +1,6 @@
// TODO: Fix the compiler error.
fn main() {
- let x = 3;
+ let mut x = 3;
println!("Number {x}");
x = 5; // Don't change this line
diff --git a/exercises/01_variables/variables5.rs b/exercises/01_variables/variables5.rs
index cf5620d..085e099 100644
--- a/exercises/01_variables/variables5.rs
+++ b/exercises/01_variables/variables5.rs
@@ -3,6 +3,6 @@ fn main() {
println!("Spell a number: {number}");
// TODO: Fix the compiler error by changing the line below without renaming the variable.
- number = 3;
+ let number = 3;
println!("Number plus two is: {}", number + 2);
}
diff --git a/exercises/01_variables/variables6.rs b/exercises/01_variables/variables6.rs
index 4a040fd..deb33ed 100644
--- a/exercises/01_variables/variables6.rs
+++ b/exercises/01_variables/variables6.rs
@@ -1,5 +1,5 @@
// TODO: Change the line below to fix the compiler error.
-const NUMBER = 3;
+const NUMBER: i32 = 3;
fn main() {
println!("Number: {NUMBER}");
diff --git a/exercises/02_functions/functions1.rs b/exercises/02_functions/functions1.rs
index a812c21..ba37396 100644
--- a/exercises/02_functions/functions1.rs
+++ b/exercises/02_functions/functions1.rs
@@ -3,3 +3,7 @@
fn main() {
call_me(); // Don't change this line
}
+
+fn call_me() {
+ println!("Hello");
+}
diff --git a/exercises/02_functions/functions2.rs b/exercises/02_functions/functions2.rs
index 2c773c6..a2cffc1 100644
--- a/exercises/02_functions/functions2.rs
+++ b/exercises/02_functions/functions2.rs
@@ -1,5 +1,5 @@
// TODO: Add the missing type of the argument `num` after the colon `:`.
-fn call_me(num:) {
+fn call_me(num: i32) {
for i in 0..num {
println!("Ring! Call number {}", i + 1);
}
diff --git a/exercises/02_functions/functions3.rs b/exercises/02_functions/functions3.rs
index 8d65477..845a1b4 100644
--- a/exercises/02_functions/functions3.rs
+++ b/exercises/02_functions/functions3.rs
@@ -6,5 +6,5 @@ fn call_me(num: u8) {
fn main() {
// TODO: Fix the function call.
- call_me();
+ call_me(4);
}
diff --git a/exercises/02_functions/functions4.rs b/exercises/02_functions/functions4.rs
index b22bffd..c1e078c 100644
--- a/exercises/02_functions/functions4.rs
+++ b/exercises/02_functions/functions4.rs
@@ -8,7 +8,7 @@ fn is_even(num: i64) -> bool {
}
// TODO: Fix the function signature.
-fn sale_price(price: i64) -> {
+fn sale_price(price: i64) -> i64 {
if is_even(price) {
price - 10
} else {
diff --git a/exercises/02_functions/functions5.rs b/exercises/02_functions/functions5.rs
index 34a2ac7..800703c 100644
--- a/exercises/02_functions/functions5.rs
+++ b/exercises/02_functions/functions5.rs
@@ -1,9 +1,9 @@
// TODO: Fix the function body without changing the signature.
fn square(num: i32) -> i32 {
- num * num;
+ num * num
}
fn main() {
- let answer = square(3);
+ let answer: i32 = square(3);
println!("The square of 3 is {answer}");
}
diff --git a/exercises/03_if/if1.rs b/exercises/03_if/if1.rs
index e5a3c5a..8036c89 100644
--- a/exercises/03_if/if1.rs
+++ b/exercises/03_if/if1.rs
@@ -4,6 +4,7 @@ fn bigger(a: i32, b: i32) -> i32 {
// Do not use:
// - another function call
// - additional variables
+ if a > b { a } else { b }
}
fn main() {
diff --git a/exercises/03_if/if2.rs b/exercises/03_if/if2.rs
index ca8493c..8104487 100644
--- a/exercises/03_if/if2.rs
+++ b/exercises/03_if/if2.rs
@@ -2,8 +2,10 @@
fn picky_eater(food: &str) -> &str {
if food == "strawberry" {
"Yummy!"
+ } else if food == "potato" {
+ "I guess I can eat that."
} else {
- 1
+ "No thanks!"
}
}
diff --git a/exercises/03_if/if3.rs b/exercises/03_if/if3.rs
index 89164eb..96f81f9 100644
--- a/exercises/03_if/if3.rs
+++ b/exercises/03_if/if3.rs
@@ -3,11 +3,11 @@ fn animal_habitat(animal: &str) -> &str {
let identifier = if animal == "crab" {
1
} else if animal == "gopher" {
- 2.0
+ 2
} else if animal == "snake" {
3
} else {
- "Unknown"
+ 0
};
// Don't change the expression below!
diff --git a/exercises/04_primitive_types/primitive_types1.rs b/exercises/04_primitive_types/primitive_types1.rs
index 84923c7..c464bd9 100644
--- a/exercises/04_primitive_types/primitive_types1.rs
+++ b/exercises/04_primitive_types/primitive_types1.rs
@@ -9,6 +9,7 @@ fn main() {
// TODO: Define a boolean variable with the name `is_evening` before the `if` statement below.
// The value of the variable should be the negation (opposite) of `is_morning`.
// let …
+ let is_evening = !is_morning;
if is_evening {
println!("Good evening!");
}
diff --git a/exercises/04_primitive_types/primitive_types2.rs b/exercises/04_primitive_types/primitive_types2.rs
index 1401847..4532608 100644
--- a/exercises/04_primitive_types/primitive_types2.rs
+++ b/exercises/04_primitive_types/primitive_types2.rs
@@ -16,7 +16,7 @@ fn main() {
// below with your favorite character.
// Try a letter, try a digit (in single quotes), try a special character, try a character
// from a different language than your own, try an emoji 😉
- // let your_character = '';
+ let your_character = '😀';
if your_character.is_alphabetic() {
println!("Alphabetical!");
diff --git a/exercises/04_primitive_types/primitive_types3.rs b/exercises/04_primitive_types/primitive_types3.rs
index 9b79c0c..6ee4a3b 100644
--- a/exercises/04_primitive_types/primitive_types3.rs
+++ b/exercises/04_primitive_types/primitive_types3.rs
@@ -1,6 +1,6 @@
fn main() {
// TODO: Create an array called `a` with at least 100 elements in it.
- // let a = ???
+ let a = 0..100;
if a.len() >= 100 {
println!("Wow, that's a big array!");
diff --git a/exercises/04_primitive_types/primitive_types4.rs b/exercises/04_primitive_types/primitive_types4.rs
index 16e4fd9..a15feb1 100644
--- a/exercises/04_primitive_types/primitive_types4.rs
+++ b/exercises/04_primitive_types/primitive_types4.rs
@@ -9,7 +9,7 @@ mod tests {
let a = [1, 2, 3, 4, 5];
// TODO: Get a slice called `nice_slice` out of the array `a` so that the test passes.
- // let nice_slice = ???
+ let nice_slice = &a[1..4];
assert_eq!([2, 3, 4], nice_slice);
}
diff --git a/exercises/04_primitive_types/primitive_types5.rs b/exercises/04_primitive_types/primitive_types5.rs
index 6e00ef5..3dce863 100644
--- a/exercises/04_primitive_types/primitive_types5.rs
+++ b/exercises/04_primitive_types/primitive_types5.rs
@@ -3,6 +3,7 @@ fn main() {
// TODO: Destructure the `cat` tuple in one statement so that the println works.
// let /* your pattern here */ = cat;
+ let (name, age) = cat;
println!("{name} is {age} years old");
}
diff --git a/exercises/04_primitive_types/primitive_types6.rs b/exercises/04_primitive_types/primitive_types6.rs
index a97e531..e70cb69 100644
--- a/exercises/04_primitive_types/primitive_types6.rs
+++ b/exercises/04_primitive_types/primitive_types6.rs
@@ -10,7 +10,7 @@ mod tests {
// TODO: Use a tuple index to access the second element of `numbers`
// and assign it to a variable called `second`.
- // let second = ???;
+ let second = numbers.1;
assert_eq!(second, 2, "This is not the 2nd number in the tuple!");
}
diff --git a/exercises/quizzes/quiz1.rs b/exercises/quizzes/quiz1.rs
index 04fb2aa..d3a200d 100644
--- a/exercises/quizzes/quiz1.rs
+++ b/exercises/quizzes/quiz1.rs
@@ -10,7 +10,9 @@
// TODO: Write a function that calculates the price of an order of apples given
// the quantity bought.
-// fn calculate_price_of_apples(???) -> ??? { ??? }
+fn calculate_price_of_apples(apples: i32) -> i32 {
+ if apples <= 40 { apples * 2 } else { apples }
+}
fn main() {
// You can optionally experiment here.