Автор Без Палева задал вопрос в разделе Другие языки и технологии
Си. scanf(). не пойму почему не считываются значения. Подскажите, пожалуйста. и получил лучший ответ
Ответ от Ra[гуру]
Проверьте соответствие форматной строки и типов данных, посмотрите настройки локали, обратите внимание как вводятся float, а как double:
#include <stdio.h>
#include <locale.h>
int main() {
float f;
double d;
struct lconv *lc;
setlocale(LC_ALL, "C");
lc = localeconv();
printf("decimal point: %c
", *lc->decimal_point);
printf("f d? ");
scanf("%f", &f);
scanf("%lf", &d);
printf("you enter: %f %f
", f, d);
setlocale(LC_ALL, "");
lc = localeconv();
printf("decimal point: %c
", *lc->decimal_point);
printf("f d? ");
scanf("%f %lf", &f, &d);
printf("you enter: %f %f
", f, d);
return 0;
}
Возможно, у вас та же проблема, с которой я сам недавно столкнулся. Когда вводите, вводить вещественные числа нужно вводить, например, так 5,9, а не 5.9.
1. Надо выкладывать задание. Написано "введите целочисленные", затем вводятся вещественные. Телепаты в отпуске. 2. Надо выкладывать код не картинкой, а, скажем, на pastebin.com - и не произвольно вырезанный кусок, а по возможности минимальный участок, где проявляется проблема. Этот участок кода не содержит кучу всего, от чего зависит выполнение - например, определений a,b,x,y. Телепаты.. . см. выше. 3. Надо конкретно описывать проблему. Значения не считываются? Отчего же - вот, -9.2559604013428634e+061 считалось. Может, считываются неправильно, или считываются неоттуда, или не в том порядке? Телепаты см. выше.
Задано считывать целые значения: int a,b,x;//объявление переменных scanf(%d %d %d &a,&b,&x);//считаем целые по формату целых Или нужно вещественные? Тогда float w,u,z; scanf(%f %f %f &w,&u,&z);//считаем float