Логарифм калькулятор - PullRequest
       16

Логарифм калькулятор

0 голосов
/ 01 апреля 2020

Я пытаюсь сделать калькулятор логарифма и застрял - он не выводит значение. Проблема может быть в строках 15 или 24 или обоих. Как я могу заставить его напечатать значение (все написано в C).

Вот полный код:

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

// Finds base 10 logarithms

int main()
{
    float result;
    float base = 10.0;
    float multiplier = 1.0;
    // float counter1 = 0.0;
    // float counter2 = 0;

    printf("Input result: ");
    scanf("%l", result);

    // Solves for all results above the base
    if(result > base) {
        while(result > multiplier) {
            multiplier =  multiplier * multiplier; // the multiplier has to check non-whole numbers
            multiplier += 0.001;
        } // division
    }
    printf("Your exponent is: %l \n", &multiplier);
    printf("Hello mathematics!");
    return 0;
}

Вся помощь оценена, Xebiq

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Вы должны удалить & в printf и добавить & в scanf.

printf("Your exponent is: %f \n", multiplier);
scanf("%f", &result);

и использовать %f в них.

и с базой 10 Я предлагаю эту функцию для вычисления журнала:

unsigned int Log2n(unsigned int n)
{
    return (n > 1) ? 1 + Log2n(n / 10) : 0;
}

также вы должны знать о числах с плавающей точкой здесь: multiplier += 0.001;

вероятно, точно 0.001 не будет добавлено multiplier когда я отлаживал это 0.00100005 добавлялось к multiplier в моем компиляторе (что повлияет на умножение)

0 голосов
/ 01 апреля 2020

В printf удалите '&' и в scanf добавьте '&' перед переменной.

...