sqrt в C на Ubuntu - c

Я повинен написати програму, яка знаходить квадратний коріньцілого числа, яке вводиться користувачем. Але я зіткнувся з проблемою - програма не обчислює sqrt. Я шукав проблему в Інтернеті, читав усі рішення, але вони мені не допомогли. На цьому форумі є багато питань на цю тему, але описані там рішення не працюють для мене.

Насправді sqrt Функція не працює, коли ціле число вводиться користувачем. Коли я встановлюю значення, воно працює ідеально. Іншими словами, він знаходить sqrt постійної, але не змінної.

Я компілюю його з цим кодом (як скрізь написано) gcc -o sqrt -lm sqrt.c

Я працюю над Ubuntu.

Це код:

#include<stdio.h>
#include<math.h>
main()
{
int a;
double b=sqrt(a);
scanf("%i", &a);
printf("sqrt of integer is %lf", b);
getchar();
getchar();
return 0;
}

Відповіді:

8 для відповіді № 1
int a;
double b=sqrt(a);
scanf("%i", &a);

Ви використовуєте змінну (a) перед ініціалізацією. The scanf повинні йти до sqrt.


3 для відповіді № 2

Щоб додати щось до двох хороших відповідейнаписано: потрібно мати на увазі, що первинна послідовність інструкцій в C лінійна - введення, написане першим, виконується першим. Якби ми говорили про математику, було б чудово сказати "нехай b - це те функція sqrt (a), потім з’ясуємо, що таке b (a) ". Насправді це можна зробити на C, визначивши власні функції, але це щось інше. Це робить те, що ти йому сказав.