#include <stdio.h>
// Conversion functions (all convert *from meters* first)
double mmToMeters(double mm) { return mm / 1000.0; }
double cmToMeters(double cm) { return cm / 100.0; }
double kmToMeters(double km) { return km * 1000.0; }
double milesToMeters(double mi) { return mi * 1609.34; }
double feetToMeters(double ft) { return ft * 0.3048; }
double yardsToMeters(double yd) { return yd * 0.9144; }
double inchesToMeters(double in) { return in * 0.0254; }
// Convert meters → all units
double toMillimeters(double m) { return m * 1000.0; }
double toCentimeters(double m) { return m * 100.0; }
double toKilometers(double m) { return m / 1000.0; }
double toMiles(double m) { return m / 1609.34; }
double toFeet(double m) { return m / 0.3048; }
double toYards(double m) { return m / 0.9144; }
double toInches(double m) { return m / 0.0254; }
int main(void) {
int choice;
double value, meters;
printf("Choose input unit:\n");
printf("1. Millimeters\n");
printf("2. Centimeters\n");
printf("3. Meters\n");
printf("4. Kilometers\n");
printf("5. Miles\n");
printf("6. Feet\n");
printf("7. Yards\n");
printf("8. Inches\n");
printf("Enter choice: ");
scanf("%d", &choice);
printf("Enter value: ");
scanf("%lf", &value);
// Convert chosen unit → meters
switch (choice) {
case 1: meters = mmToMeters(value); break;
case 2: meters = cmToMeters(value); break;
case 3: meters = value; break;
case 4: meters = kmToMeters(value); break;
case 5: meters = milesToMeters(value); break;
case 6: meters = feetToMeters(value); break;
case 7: meters = yardsToMeters(value); break;
case 8: meters = inchesToMeters(value); break;
default:
printf("Invalid choice\n");
return 0;
}
printf("\nConverted from meters (%.6f m):\n", meters);
printf("Millimeters: %.6f\n", toMillimeters(meters));
printf("Centimeters: %.6f\n", toCentimeters(meters));
printf("Meters: %.6f\n", meters);
printf("Kilometers: %.6f\n", toKilometers(meters));
printf("Miles: %.6f\n", toMiles(meters));
printf("Feet (Foot): %.6f\n", toFeet(meters));
printf("Yards: %.6f\n", toYards(meters));
printf("Inches: %.6f\n", toInches(meters));
return 0;
}
/*
run:
Choose input unit:
1. Millimeters
2. Centimeters
3. Meters
4. Kilometers
5. Miles
6. Feet
7. Yards
8. Inches
Enter choice: 4
Enter value: 1
Converted from meters (1000.000000 m):
Millimeters: 1000000.000000
Centimeters: 100000.000000
Meters: 1000.000000
Kilometers: 1.000000
Miles: 0.621373
Feet (Foot): 3280.839895
Yards: 1093.613298
Inches: 39370.078740
*/