📖 Scenario: You are helping a small shop owner who keeps a list of daily sales numbers. They want to analyze these numbers to understand their business better.
🎯 Goal: You will create a Rust program that stores daily sales in an array, then uses a loop to go through each sale and calculate the total sales.
📋 What You'll Learn
Create an array with exact daily sales numbers
Create a variable to hold the total sales
Use a for loop with variable sale to traverse the array
Add each sale to the total
Print the total sales at the end
💡 Why This Matters
🌍 Real World
Summing daily sales is a common task in business to understand total revenue over a period.
💼 Career
Knowing how to traverse arrays and sum values is a basic skill for software developers working with data.
Progress0 / 4 steps
1
Create the daily sales array
Create an array called daily_sales with these exact values: 100, 200, 150, 175, 125
DSA Rust
Hint
Use let daily_sales = [100, 200, 150, 175, 125]; to create the array.
2
Create a total sales variable
Add a variable called total and set it to 0 to hold the sum of sales
DSA Rust
Hint
Use let mut total = 0; to create a variable that can change.
3
Traverse the array and sum sales
Use a for loop with variable sale to go through daily_sales and add each sale to total
DSA Rust
Hint
Use for sale in daily_sales { total += sale; } to add each sale.
4
Print the total sales
Write a println! statement to print the text Total sales: followed by the value of total
DSA Rust
Hint
Use println!("Total sales: {}", total); to show the result.
Practice
(1/5)
1. What does the following Rust code snippet do? for i in 0..5 { println!("{}", i); }
easy
A. Prints numbers from 1 to 4
B. Prints numbers from 1 to 5
C. Prints numbers from 0 to 5
D. Prints numbers from 0 to 4
Solution
Step 1: Understand the range syntax 0..5
The range 0..5 in Rust includes numbers starting at 0 up to but not including 5.
Step 2: Trace the loop iterations
The loop variable i takes values 0, 1, 2, 3, and 4, printing each number.
Final Answer:
Prints numbers from 0 to 4 -> Option D
Quick Check:
Range 0..5 excludes 5, so output is 0 to 4 [OK]
Hint: Remember Rust ranges exclude the end number [OK]
Common Mistakes:
Thinking 0..5 includes 5
Confusing 0..5 with 0..=5
Assuming loop starts at 1
2. Which of the following is the correct syntax to iterate over the indices of an array arr in Rust?
easy
A. for i in 0..arr.len() { println!("{}", arr[i]); }
B. for i in 0..arr { println!("{}", i); }
C. for i in arr { println!("{}", i); }
D. for i in arr.len() { println!("{}", i); }
Solution
Step 1: Check valid iteration over array indices
Rust arrays have a length method .len(), so 0..arr.len() gives valid indices.
Step 2: Access elements by index
Using arr[i] inside the loop accesses each element correctly.
Final Answer:
for i in 0..arr.len() { println!("{}", arr[i]); } -> Option A
Quick Check:
Use 0..arr.len() for index-based iteration [OK]
Hint: Use arr.len() for array length, not arr alone [OK]
Common Mistakes:
Using 0..arr instead of 0..arr.len()
Trying to iterate directly over arr without reference
Using arr.len() without range syntax
3. What is the output of this Rust code?
let arr = [10, 20, 30];
for i in (0..arr.len()).rev() {
print!("{} ", arr[i]);
}
medium
A. 10 20 30
B. 0 1 2
C. 30 20 10
D. Compilation error
Solution
Step 1: Understand the range and reverse
The range 0..arr.len() is 0..3, which is 0,1,2. Using .rev() reverses it to 2,1,0.
Step 2: Print elements in reverse order
arr[2] = 30, arr[1] = 20, arr[0] = 10, so output is "30 20 10 "
Final Answer:
30 20 10 -> Option C
Quick Check:
Reverse iteration prints elements backward [OK]
Hint: Use .rev() to reverse range iteration [OK]
Common Mistakes:
Forgetting .rev() reverses the order
Printing indices instead of array values
Confusing range end with inclusive
4. Identify the error in this Rust code snippet that tries to print all elements of an array arr:
let arr = [1, 2, 3];
for i in 0..arr.len() {
println!("{}", arr[i+1]);
}
medium
A. Syntax error due to missing semicolon
B. Index out of bounds error at runtime
C. No error, prints all elements correctly
D. Compilation error due to type mismatch
Solution
Step 1: Analyze the loop indices and access
The loop runs i from 0 to 2 (arr.len()=3). Accessing arr[i+1] means indices 1,2,3.
Step 2: Identify out of bounds access
arr[3] does not exist, causing runtime panic (index out of bounds).
Final Answer:
Index out of bounds error at runtime -> Option B
Quick Check:
Accessing arr[i+1] exceeds array length [OK]
Hint: Check array indices carefully to avoid out of bounds [OK]
Common Mistakes:
Assuming arr[i+1] is safe for all i
Ignoring runtime panics
Confusing compile-time and runtime errors
5. Given a Rust array arr of integers, which code snippet correctly prints only the even-indexed elements (0, 2, 4, ...) of the array?
hard
A. for i in (0..arr.len()).step_by(2) { println!("{}", arr[i]); }
B. for i in 0..arr.len() { if i % 2 == 1 { println!("{}", arr[i]); } }
C. for i in 0..arr.len() { println!("{}", arr[i * 2]); }
D. for i in (0..arr.len()).rev().step_by(2) { println!("{}", arr[i]); }
Solution
Step 1: Understand step_by usage
The method step_by(2) skips every second index, so 0, 2, 4, ...
Step 2: Confirm correct element access
Using arr[i] inside the loop prints elements at even indices correctly.
Final Answer:
for i in (0..arr.len()).step_by(2) { println!("{}", arr[i]); } -> Option A
Quick Check:
step_by(2) iterates over even indices [OK]
Hint: Use step_by(2) to jump every two elements [OK]
Common Mistakes:
Using i % 2 == 1 instead of 0 for even indices
Multiplying i by 2 causing out of bounds
Using rev() which reverses order unnecessarily
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.