Сканирование значений двумерного массива - PullRequest
1 голос
/ 25 июля 2009

Я написал код, используя язык C, следующим образом:

main()
{
    float x[10][10];  int i,j;   clrscr();
    scanf("%d%d",&i,&j);
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
            scanf("%f",&x[i][j]);
 ......
}

Когда я запускаю эту программу, возникает НЕПРАВИЛЬНОЕ ПРЕКРАЩЕНИЕ с ошибкой, такой как «Плавающие точки конверсии не связаны».
БудетВы не возражаете, скажите мне, что я ошибся?

моя ОС: Windows XP Компилятор: TurboC

1 Ответ

6 голосов
/ 25 июля 2009

http://c -faq.com / fp / fpnotlinked.html

Некоторые компиляторы для небольших машин, включая Turbo C (и оригинальный компилятор Ritchie для PDP-11),пропустите определенную поддержку с плавающей запятой, если кажется, что она не понадобится. В частности, версии printf и scanf без плавающей запятой экономят пространство, не включая код для обработки% e,% f и% g. Бывает, что эвристики Борланда для определения того, использует ли программа плавающую точку, недостаточно, и программист должен иногда вставлять фиктивный вызов библиотечной функции с плавающей точкой (такой как sqrt; любой сделает) для принудительной загрузки поддержки с плавающей точкой. (См. Список часто задаваемых вопросов comp.os.msdos.programmer для получения дополнительной информации.) Частично связанная проблема, приводящая к аналогичному сообщению об ошибке (возможно, «плавающая точка не загружена»), по-видимому, может возникать в некоторых компиляторах MS-DOS, когданеверный вариант библиотеки с плавающей точкой связан. Проверьте в руководстве вашего компилятора описание различных библиотек с плавающей точкой.

...