|
|
|
|
|
|
|
Вернуться
| 1 Мирный, 30 марта 2010 г. 22:27:06 | |
|
Мож кому пригодится, моноC# не компилит long, просит int. Столкнулся на днях с тем, что если сервер на *nix, то за шарп можно сразу забывать, даже не представлял что он там НАСТОЛЬКО урезаный! Ругается вообще на всё подряд!
|
|
|
| 2 Сам, 27 марта 2010 г. 9:16:18 | |
|
Спасибо!
|
|
|
| 3 Демиденко Виталий, 27 марта 2010 г. 7:19:49 | |
|
Нияз, у меня тоже g++ на это не ругается. Был у меня недавно случай, что и делфи на это ругался, когда я ln( int ) вычислял.
|
|
|
| 4 Нигматуллин Нияз Габдуллазянович [СПбГУ ИТМО], 27 марта 2010 г. 2:26:12 | |
|
не понятно, почему компилятор msvc и intel не может нормально кастить передаваемые int в double
|
|
|
| 5 Нигматуллин Нияз Габдуллазянович [СПбГУ ИТМО], 27 марта 2010 г. 2:16:28 | |
>> 3 Демиденко Виталий, 26 марта 2010 г. 19:43:38 >> Нет, это не из-за этого, это же си. Тут ошибка из-за того, что в функции sqrt(); нельзя указывать тип int, надо либо (double), либо >> *1.0 а почему при присвоении double должен каститься к int, а при передаче аргумента int не должен каститься к double. у меня sqrt от int'a компилируется без warning'ов, компилятор g++.
|
|
|
| 6 dAFTc0d3r Делюкин Максим, 27 марта 2010 г. 0:18:17 | |
sqrt( int ) это точно ошибка здесь, как и говорилось. =) Одныжды у меня (буквально в этом марте, на личном оффлайн контесте) пограмма, компилирующаяся у меня, получала вердикт Compilation Error, оказалось, что виновата оказалсь перегруженная мною функция double abs( double d ). Моя программе действительно не скомпилировалась, когда я поменял Debug на Release в настройках сборки проекта (теперь постоянно пишу ab(...) ). в-третьих - А зачем, извините, здесь abs? =) =) =) а в-четвертых... Не стоит делать первый пост ОЧЕНЬ БОЛЬШИМ (читай длинее двух строчек). =)
|
|
|
| 7 Бороздин Кирилл Андреевич, 26 марта 2010 г. 20:57:06 | |
|
Да, действительно, в Visual Studio нет перегруженной версии sqrt для целых чисел. Приходится приводить к double или float
|
|
|
| 8 Демиденко Виталий, 26 марта 2010 г. 19:43:38 | |
|
Нет, это не из-за этого, это же си. Тут ошибка из-за того, что в функции sqrt(); нельзя указывать тип int, надо либо (double), либо *1.0
|
|
|
| 9 Бахабиев Эмиль, 26 марта 2010 г. 19:37:29 | |
int gip = sqrt((abs(x1 - x2)) * (abs(x1 - x2)) + (abs(y1 - y2)) * (abs(y1 - y2))); Понятно, что лажа идет в этой строчке - ты присваеваешь целому числу вещественное значение. вместо int gip пиши double gip.
|
|
|
| 10 Шмидт Андрей Андреевич [AS PPS] (SKYDOS), 26 марта 2010 г. 19:22:44 | |
|
прочитай ошибку компилятора в самом низу просмотра кода красными буквами на этом сайте
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |