Проблем със scanf() - винаги чете "1"
Здравейте,
Забавлявам се със задачите от първото домашно. Имах няколко неуспешни опита с импортването на math.h в Xubuntu, но пожънах успех като добавих "-lm" в линкера на Netbeans 7.0 (както каза г-н Гугъл).
Не можах обаче да се справя със scanf() - винаги чете "1".
Това е примерен код и резултат:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char** argv) {
printf("How many values to display: ");
int numbers = scanf("%d", &numbers);
printf("You entered: %d\n", numbers);
return (0);
}
How many values to display: 200
You entered: 1
Това се случва както с цели числа, така и с такива с десетична запетая.
Може ли някой да помогне с този казус, защото всички примери, които намерих не работят?
П.С.
Ако не използвам scanf(), а пиша направо числата няма проблем и всичко работи.
Така вече е ОК :)
Както винаги грешката е RTFM - Read The F*cking Manual...
Много благодаря!
Здравейте,
някой може ли да ми каже защо този код не иска да се билдне?
#include <stdio.h>
#include <math.h>
int main() {
int number;
scanf("%d", &number);
printf("%f",sqrt(number));
return 0;
}
Като подам на sqrt() директно число, а не променлива работи правилно.
Това е една особеност при компилатора:
http://stackoverflow.com/questions/1711915/sqrt-from-math-h-causes-linker-error-undefined-reference-to-sqrt-only-when-the
Ето така ще се компилира:
gcc -Wall sqrt.c -lm -o sqrt
Или така:
gcc -your-program-name.c -o -your-program-name -lm
Благодаря :)