📖 Scenario: You have a list of product IDs in a store inventory. You want to find if a specific product ID is available in the list.
🎯 Goal: Build a simple linear search program in C that looks for a given product ID in an array and tells if it is found or not.
📋 What You'll Learn
Create an integer array called products with these exact values: 101, 203, 405, 607, 809
Create an integer variable called search_id and set it to 405
Write a linear search loop using for with iterator i to check each element in products
Create an integer variable called found_index and set it to -1 before the loop
If search_id is found in products, set found_index to the index i and break the loop
Print "Product found at index: X" if found, or "Product not found" if not
💡 Why This Matters
🌍 Real World
Searching for an item in a list is a common task in inventory management, shopping apps, and databases.
💼 Career
Understanding linear search helps in debugging and optimizing simple search operations in software development.
Progress0 / 4 steps
1
Create the product array
Create an integer array called products with these exact values: 101, 203, 405, 607, 809
DSA C
Hint
Use curly braces to list the values inside the array.
2
Set the product ID to search
Create an integer variable called search_id and set it to 405
DSA C
Hint
Use int search_id = 405; to create the variable.
3
Implement the linear search loop
Create an integer variable called found_index and set it to -1. Then use a for loop with iterator i from 0 to 4 to check each element in products. If products[i] equals search_id, set found_index to i and use break to exit the loop.
DSA C
Hint
Remember to initialize found_index before the loop and use break inside the if condition.
4
Print the search result
Use printf to print "Product found at index: X" if found_index is not -1. Otherwise, print "Product not found".
DSA C
Hint
Use printf with %d to show the index.
Practice
(1/5)
1. What is the main idea behind the Linear Search Algorithm?
easy
A. Check each element one by one until the target is found or list ends
B. Divide the list into halves repeatedly to find the target
C. Sort the list first then search using binary method
D. Use a hash table to find the target instantly
Solution
Step 1: Understand linear search process
Linear search checks each element in order from start to end.
Step 2: Compare with other search methods
Other methods like binary search divide the list, but linear search does not.
Final Answer:
Check each element one by one until the target is found or list ends -> Option A
Quick Check:
Linear search = check elements one by one [OK]
Hint: Linear search checks elements one by one [OK]
Common Mistakes:
Confusing linear search with binary search
Thinking linear search requires sorted list
Assuming instant search with hash tables
2. Which of the following is the correct syntax to start a linear search loop in C for an array arr of size n?
easy
A. for (int i = 0; i < n; i++)
B. for (int i = 0; i <= n; i++)
C. for (int i = 1; i < n; i++)
D. for (int i = 1; i <= n; i++)
Solution
Step 1: Understand array indexing in C
Arrays in C start at index 0 and go up to n-1 for size n.
Step 2: Choose correct loop condition
The loop should run from 0 to less than n, so i < n is correct.
Final Answer:
for (int i = 0; i < n; i++) -> Option A
Quick Check:
Loop from 0 to n-1 = for(i=0; i<n; i++) [OK]
Hint: Array index starts at 0, loop till i < n [OK]
Common Mistakes:
Using <= n causes out-of-bounds access
Starting loop at 1 misses first element
Confusing array size with last index
3. What will be the output of the following C code?
int arr[] = {4, 2, 7, 1, 9};
int n = 5;
int target = 7;
int index = -1;
for (int i = 0; i < n; i++) {
if (arr[i] == target) {
index = i;
break;
}
}
printf("%d", index);
Hint: Stop loop when target found, print index [OK]
Common Mistakes:
Printing value instead of index
Not breaking loop and printing last index
Confusing index with element value
4. Find the error in this linear search code snippet in C:
int linearSearch(int arr[], int n, int target) {
for (int i = 1; i <= n; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
medium
A. The array parameter should be a pointer, not an array
B. The function should return the element, not the index
C. The return -1 should be inside the loop
D. Loop starts at 1 and goes to <= n, causing out-of-bounds access
Solution
Step 1: Check loop indexing for array access
Array indices in C start at 0 and go to n-1, but loop starts at 1 and goes to n, causing out-of-bounds at arr[n].
Step 2: Identify correct loop bounds
Loop should start at 0 and run while i < n to avoid invalid access.
Final Answer:
Loop starts at 1 and goes to <= n, causing out-of-bounds access -> Option D
Quick Check:
Array index out-of-bounds due to wrong loop limits [OK]
Hint: Array index starts at 0, loop i < n [OK]
Common Mistakes:
Starting loop at 1 instead of 0
Using <= n instead of < n in loop condition
Returning element instead of index
5. You have an unsorted array arr with 10 elements where some elements repeat. You want to find the first occurrence index of the number 5 using linear search. Which approach is best to handle duplicates and return the correct index?
hard
A. Sort the array first, then use binary search to find 5
B. Traverse entire array, count all 5s, then return last index of 5
C. Traverse from start to end, return index immediately when 5 is found
D. Use a hash map to store counts, then find index of 5
Solution
Step 1: Understand requirement for first occurrence
We want the first index where 5 appears, so searching from start is needed.
Step 2: Choose approach that stops at first match
Linear search that returns immediately on first 5 found gives correct first occurrence index.
Final Answer:
Traverse from start to end, return index immediately when 5 is found -> Option C
Quick Check:
Stop at first match to get first occurrence [OK]
Hint: Return index immediately on first match [OK]
Common Mistakes:
Counting all occurrences then returning last index
Sorting changes original order, losing first occurrence
Using hash map adds unnecessary complexity
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.