📖 Scenario: You are creating a simple program that asks a user for their age and height.
🎯 Goal: Build a C program that uses scanf to read an integer and a float from the user.
📋 What You'll Learn
Use scanf to read an integer value for age
Use scanf to read a float value for height
Print the values back to the user
💡 Why This Matters
🌍 Real World
Many programs need to get information from users, like age or height, to personalize the experience.
💼 Career
Understanding how to read user input with <code>scanf</code> is a basic skill for C programmers working on interactive applications.
Progress0 / 4 steps
1
Create variables for age and height
Declare an integer variable called age and a float variable called height.
C
Hint
Use int for whole numbers and float for decimal numbers.
2
Use scanf to read age
Add a printf statement to ask the user to enter their age. Then use scanf with "%d" to read the integer into age.
C
Hint
Remember to use &age to pass the address to scanf.
3
Use scanf to read height
Add a printf statement to ask the user to enter their height. Then use scanf with "%f" to read the float into height.
C
Hint
Use %f to read a float value with scanf.
4
Print the age and height
Use printf to display the message: Your age is followed by age, and on the next line, Your height is followed by height with 2 decimal places.
C
Hint
Use %d for integers and %.2f to show float with two decimals in printf.
Practice
(1/5)
1. What is the purpose of the scanf function in C?
easy
A. To read input from the user during program execution
B. To print output to the screen
C. To declare variables
D. To perform mathematical calculations
Solution
Step 1: Understand the role of scanf
scanf is used to get input from the user while the program runs.
Step 2: Differentiate from other functions
Functions like printf print output, but scanf reads input.
Final Answer:
To read input from the user during program execution -> Option A
Quick Check:
scanf reads input [OK]
Hint: scanf reads input, printf prints output [OK]
Common Mistakes:
Confusing scanf with printf
Thinking scanf declares variables
Assuming scanf performs calculations
2. Which of the following is the correct way to read an integer variable num using scanf?
easy
A. scanf("%s", &num);
B. scanf("%d", num);
C. scanf("%f", &num);
D. scanf("%d", &num);
Solution
Step 1: Identify the correct format specifier for integer
Use %d to read an integer.
Step 2: Use the address operator for variables
Use &num to pass the address of the variable to scanf.
Final Answer:
scanf("%d", &num); -> Option D
Quick Check:
Integer input needs %d and &variable [OK]
Hint: Use & before variable except arrays [OK]
Common Mistakes:
Omitting & before variable
Using wrong format specifier like %f or %s
Passing variable instead of its address
3. What will be the output of the following code if the user inputs 25?
int age;
scanf("%d", &age);
printf("Age: %d", age);
medium
A. Age: 0
B. Age: 25
C. Age: %d
D. Compilation error
Solution
Step 1: Understand input reading
scanf("%d", &age); reads the integer 25 and stores it in age.
Step 2: Print the stored value
printf("Age: %d", age); prints the string with the value of age, which is 25.
Final Answer:
Age: 25 -> Option B
Quick Check:
scanf stores input, printf prints it [OK]
Hint: scanf stores input, printf prints variable [OK]
Common Mistakes:
Forgetting & in scanf causing runtime error
Using wrong format specifier in printf
Expecting scanf to print output
4. Identify the error in the following code snippet:
int x;
printf("Enter a number: ");
scanf("%d", x);
printf("You entered %d", x);
medium
A. Missing & before variable x in scanf
B. Wrong format specifier in scanf
C. Missing semicolon after printf
D. Variable x not declared
Solution
Step 1: Check scanf usage
scanf("%d", x); is incorrect because it should use &x to pass the address.
Step 2: Confirm other parts are correct
Format specifier is correct, semicolons are present, and x is declared.
Final Answer:
Missing & before variable x in scanf -> Option A
Quick Check:
scanf needs &variable for input [OK]
Hint: Always use & before variables in scanf except arrays [OK]
Common Mistakes:
Omitting & causing segmentation fault
Using wrong format specifier
Assuming scanf prints output
5. You want to read a string (word) from the user into a character array name[20]. Which of the following scanf statements is correct and safe to avoid buffer overflow?
hard
A. scanf("%s", name);
B. scanf("%s", &name);
C. scanf("%19s", name);
D. scanf("%20s", &name);
Solution
Step 1: Understand string input with scanf
To read a string into name, use %s without & because arrays decay to pointers.
Step 2: Prevent buffer overflow
Limit input length to 19 characters using %19s to leave space for the null terminator.
Final Answer:
scanf("%19s", name); -> Option C
Quick Check:
Limit string input length with %19s [OK]
Hint: Use %19s for 20-char array to avoid overflow [OK]
Common Mistakes:
Using & with arrays in scanf
Not limiting input length causing overflow
Using wrong format specifier for strings
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.