Таблица в цикле не отображает данные правильно - PullRequest
0 голосов
/ 08 марта 2019

У меня есть небольшая программа, которая преобразует пользовательский ввод из Фаренгейта в Цельсий.Затем, после этого, он показывает градусы по Фаренгейту от 1 до 100 с их соответствующими аналогами по Цельсию.Но при запуске выдает это.

20 по Фаренгейту = -15 по Цельсию 25 по Фаренгейту = -15 по Цельсию 30 по Фаренгейту = -15 по Цельсию
35 по Фаренгейту = -15 по Цельсию 40 по Фаренгейту = -15 по Цельсию 45 по Фаренгейту = -15 по Цельсию * 100* 50 по Фаренгейту = -15 по Цельсию
6 по Фаренгейту = -14 по Цельсию 12 по Фаренгейту = -14 по Цельсию 18 по Фаренгейту = -14 по Цельсию
24 по Фаренгейту = -14 по Цельсию 30 по Фаренгейту = -14 по Цельсию 36 по Фаренгейту = -141008 * 42 по Фаренгейту = -14 по Цельсию 48 по Фаренгейту = -14 по Цельсию 54 по Фаренгейту = -14 по Цельсию
60 по Фаренгейту = -14 по Цельсию
7 по Фаренгейту = -13 По Цельсию 14 по Фаренгейту = -13 По Цельсию 21 по Фаренгейту =
28 по Фаренгейту = -13 по Цельсию 35 по Фаренгейту = -13 по Цельсию 42 по Фаренгейту = -13 по Цельсию
49 по Фаренгейту = -13 По Цельсию 56 по Фаренгейту = -13 По Цельсию 63 по Фаренгейту = -13 По Цельсию
70-Фаренгейт =По Цельсию
8 по Фаренгейту = -13 по Цельсию 16 по Фаренгейту = -13 по Цельсию 24 по Фаренгейту = -13 По Цельсию
32 по Фаренгейту = -13 По Цельсию 40 по Фаренгейту = -13 По Цельсию 48 По Фаренгейту =-13 по Цельсию
56 по Фаренгейту = -13 по Цельсию 64 по Фаренгейту = -13 по Цельсию 72 по Фаренгейту = -13 по Цельсию
80 по Фаренгейту = -13 По Цельсию
9 по Фаренгейту = -12 По Цельсию 18 по Фаренгейту = -12 По Цельсию= -12 по Цельсию
36 по Фаренгейту = -12 по Цельсию 45 по Фаренгейту = -12 по Цельсию 54 по Фаренгейту = -12 по Цельсию

вот мой код.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    //Clear the screen
    system("clear");

    float celsius, fahrenheit;
    printf("Please enter the temperature in Fahrenheit: \n");
    scanf("%f", &fahrenheit);

    //Converts the temperature from fahrenheit to celsius
    celsius = (fahrenheit - 32) * 5 / 9;

    printf("%.2f Fahrenheit = %.2f Celsius \n", fahrenheit, celsius);
    printf ("-------------------------------- \n");

    int i,j;
    int num;
    float c;

    //Loop to create table
    for(i=1; i<=10; i++)
    {
        num = i;
        for(j=1; j<=10; j++)
        {
            c = (i*j-32) * 5 / 9;
            printf("%3d Fahrenheit = %f Celcius \t",(i*j), c);
        }

        printf("\n");
    }
    return 0;
}

1 Ответ

0 голосов
/ 08 марта 2019

Вот краткий обзор проблем и исправлений:

Убедитесь, что вы используете правильные типы для чисел с плавающей запятой / двойных чисел

Предложите, чтобы вы сделали функцию:

double f2c(double f) {
     return (f - 32.0) * 5/9;
}

int main() {
      printf("%g°F = %g°C\n", 100.0, f2c(100.0));
}

Подсчет от 0 до 99

для (i = 0; i <100; i ++) {} </p>

красивая печать 0-99 каждая с новой строкой на 10 с

для(i = 0; i <100; i ++) {print ("% 3d% 1c", i, (1 + i)% 10? '': '\ n');} </p>

Собираем все вместе

#include <stdio.h>

double f2c(double f) {
     return (f - 32) * 5/9;
}

int main() {
    int i;
    for(i = 0; i < 213; i++) {
        printf("%3d°F => %3.0f°C%s", i, f2c(i), (1+i) % 10? " | " : "\n");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...