Вычисление квадратного коряня. - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написал программу для вычисления квадратного корня, целые числа находит на ура, но с дробными проблема.
#include <stdio.h>
main()
{
    float a, s;
    float w = 1;
    int p;
    scanf("%f", &s);
    for(a = s; a >= 0; a = a - w)
    {
        if(a*a==s)
        {
            printf("square root of %f is %.*f\n", s, p, a);
        }
        if(a == 0)
        {
            a = s; /* сомневаюсь насчёт этой строки, но мне нужно приравнять a к s, всякий раз, когда повторяется цикл, или же инициализация в цикле происходит каждый раз и без этой строки можно обойтись? */
            w = w / 10;
            p = p + 1;
        }
    }
    int x = main();
}
Я так понял, что проблема тут:
if(a == 0)
{
        a = s;
        w = w / 10;
        p = p + 1;
}
Помогите советом. И почему числа более 10000000 не вычисляются, программа просто останавливает работу, может объявить переменные s, a как double? Критика кода приветствуется.

Решение задачи: «Вычисление квадратного коряня.»

textual
Листинг программы
int x = main();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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