Получить таблицу пересчета миль в километры и обратно - 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();
}

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы