Я повинен написати програму, яка знаходить квадратний коріньцілого числа, яке вводиться користувачем. Але я зіткнувся з проблемою - програма не обчислює 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 для відповіді № 1int a; double b=sqrt(a); scanf("%i", &a);
Ви використовуєте змінну (a
) перед ініціалізацією. The scanf
повинні йти до sqrt
.
3 для відповіді № 2
Щоб додати щось до двох хороших відповідейнаписано: потрібно мати на увазі, що первинна послідовність інструкцій в C лінійна - введення, написане першим, виконується першим. Якби ми говорили про математику, було б чудово сказати "нехай b - це те функція sqrt (a), потім з’ясуємо, що таке b (a) ". Насправді це можна зробити на C, визначивши власні функції, але це щось інше. Це робить те, що ти йому сказав.