0
0
CProgramBeginner · 2 min read

C Program to Convert Kilometers to Miles

You can convert kilometers to miles in C by multiplying the kilometers value by 0.621371. For example, use miles = kilometers * 0.621371; to get the miles equivalent.
📋

Examples

Input1
Output0.621371 miles
Input5
Output3.106855 miles
Input0
Output0.000000 miles
🧠

How to Think About It

To convert kilometers to miles, understand that 1 kilometer equals approximately 0.621371 miles. So, multiply the input kilometers by 0.621371 to get miles. Then display the result.
📐

Algorithm

1
Get input value in kilometers from the user
2
Multiply the kilometers by 0.621371 to convert to miles
3
Display the miles value
💻

Code

c
#include <stdio.h>

int main() {
    double kilometers, miles;
    printf("Enter distance in kilometers: ");
    scanf("%lf", &kilometers);
    miles = kilometers * 0.621371;
    printf("%.6f kilometers = %.6f miles\n", kilometers, miles);
    return 0;
}
Output
Enter distance in kilometers: 5 5.000000 kilometers = 3.106855 miles
🔍

Dry Run

Let's trace the input 5 kilometers through the code

1

Input kilometers

User enters 5, so kilometers = 5

2

Calculate miles

miles = 5 * 0.621371 = 3.106855

3

Print result

Output: '5.000000 kilometers = 3.106855 miles'

kilometersmiles
53.106855
💡

Why This Works

Step 1: Reading input

The program uses scanf to read the kilometers value from the user.

Step 2: Conversion calculation

It multiplies kilometers by 0.621371 because 1 kilometer equals approximately 0.621371 miles.

Step 3: Displaying output

The program prints the result using printf with 6 decimal places for clarity.

🔄

Alternative Approaches

Using a function for conversion
c
#include <stdio.h>

double km_to_miles(double km) {
    return km * 0.621371;
}

int main() {
    double km;
    printf("Enter kilometers: ");
    scanf("%lf", &km);
    printf("%.6f kilometers = %.6f miles\n", km, km_to_miles(km));
    return 0;
}
This approach separates conversion logic into a function, improving readability and reusability.
Using float instead of double
c
#include <stdio.h>

int main() {
    float km, miles;
    printf("Enter kilometers: ");
    scanf("%f", &km);
    miles = km * 0.621371f;
    printf("%.3f kilometers = %.3f miles\n", km, miles);
    return 0;
}
Using float saves memory but reduces precision; suitable for less precise needs.

Complexity: O(1) time, O(1) space

Time Complexity

The program performs a fixed number of operations regardless of input size, so it runs in constant time O(1).

Space Complexity

It uses a fixed amount of memory for variables, so space complexity is O(1).

Which Approach is Fastest?

All approaches run in constant time; using a function adds clarity but no significant overhead.

ApproachTimeSpaceBest For
Direct calculationO(1)O(1)Simple quick conversion
Function-basedO(1)O(1)Reusable and clear code
Float precisionO(1)O(1)Memory-limited environments
💡
Always use double for more precise distance conversions in C.
⚠️
Forgetting to use the correct format specifier (%lf) for double in scanf causes input errors.