Другие языки программирования и технологии

Си. scanf(). не пойму почему не считываются значения. Подскажите, пожалуйста.

Проверьте соответствие форматной строки и типов данных, посмотрите настройки локали, обратите внимание как вводятся 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\n", *lc->decimal_point);

    printf("f d? ");
    scanf("%f", &f);
    scanf("%lf", &d);
    printf("you enter: %f %f\n\n", f, d);

    setlocale(LC_ALL, "");
    lc = localeconv();
    printf("decimal point: %c\n", *lc->decimal_point);

    printf("f d? ");
    scanf("%f %lf", &f, &d);
    printf("you enter: %f %f\n", f, d);

    return 0;
}

Крайков Роман
Крайков Роман
75 473
Лучший ответ
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
***aza Gsp***
***aza Gsp***
35 996
Возможно, у вас та же проблема, с которой я сам недавно столкнулся.
Когда вводите, вводить вещественные числа нужно вводить, например, так 5,9, а не 5.9.