Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: Compilation Error
1
  1  Муртузалиев Султан Умалатович, 25 ноября 2012 г. 17:16:10
      понял, тогда я еще не понимал такую ошибку.
  2  Хворых Павел, 12 ноября 2012 г. 19:11:33
      вы пробовали читать сообщение об ошибке?
по-моему, проблема в нем описана вполне ясно
вы пытаетесь использовать функцию sqrt для int, в то время как она объявлена только для float и double
вам следует явно привести int к double:
sqrt((double)n) вместо sqrt(n) в 20ой строчке
  3  Муртузалиев Султан Умалатович, 11 ноября 2012 г. 22:25:52
      что-то не догнал, в чем ошибка, на Code Blocks работает все
  4  Муртузалиев Султан Умалатович, 11 ноября 2012 г. 22:24:38
     
#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int main()
{
freopen("input.txt","rt",stdin);
freopen("output.txt","wt",stdout);
//
int i,k=0,n,n2;
//
cin>>n;
if(n==1)goto met;
n2=2*n-1; n++;
if(n%2==0) n++;
while(n<=n2)
{
for(i=2;i<=(int)sqrt(n);i++)if(n%i==0)goto mt;
k++;
mt: n+=2;
}
//
met:
cout<<k;
return 0;
}


Размер кода: 305
Тест Результат Время Память
1 Compilation error


task.cpp
task.cpp(20) : error C2668: 'sqrt' : ambiguous call to overloaded function
C:\Program Files\Microsoft Visual C++ Toolkit 2003\include\math.h(626): could be 'long
double sqrt(long double)'
C:\Program Files\Microsoft Visual C++ Toolkit 2003\include\math.h(578): or 'float sqrt
(float)'
C:\Program Files\Microsoft Visual C++ Toolkit 2003\include\math.h(200): or 'double sqrt
(double)'
while trying to match the argument list '(int)'
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru