Получить таблицу пересчета миль в километры и обратно - C (СИ)
Формулировка задачи:
Получить таблицу пересчета миль в километры и обратно (1 миля = 1,609344 км) для расстояний, не превышающих k км, в следующем виде:
мили км
0,6214 1,0000
1,0000 1,6093
1,2428 2,0000
1,8641 3,0000
2,0000 3,2187
Помогите пожалуйста,дело в том что в моей программе выводит немного не те значения:
0,6214 1,0000
1,0000 1,6093
1,2428 2,0001
1,8642 3,0001
2,0000 3,2187
Переделайте пожалуйста так,что бы выводило именно те значения которые нужны по условию без лишних десятых.
#include <stdio.h>
#include <math.h>
#include <conio.h>
int k;
float koeff;
float i;
int main()
{
koeff = 1.609344;
i = 0.6214;
printf("Enter k: ");
scanf("%i", &k);
printf("Here is your table:\n");
while (i <= k)
{
printf("%.4f", i);
printf(" %.4f", i * koeff);
printf("\n");
i += 0.6214;
if (i > floor(i) && floor(i - 0.6214) < floor(i))
{
printf("%.4f", floor(i));
printf(" %.4f", floor(i) * koeff);
printf("\n");
}
}
getch();
}Решение задачи: «Получить таблицу пересчета миль в километры и обратно»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <conio.h>
int k;
double koeff;
double i, delta;
int main()
{
koeff = 1.609344;
//i = 0.6214;
delta = i = 1.0/koeff;
printf("Введите k: ");
scanf("%d", &k);
printf("Таблица:\n");
while (i <= k)
{
printf("%.4f",i );
printf(" %.4f", i* koeff);
printf("\n");
i += delta;
if (i > floor(i) && floor(i - 0.6214) < floor(i))
{
printf("%.4f", floor(i));
printf(" %.4f", floor(i) * koeff);
printf("\n");
}
}
getch();
}