Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2012, 01:26   #1
notAstudent
Новичок
Джуниор
 
Регистрация: 30.07.2012
Сообщений: 1
По умолчанию error C2668: sqrt:...mv c++2010express

mv c++ 2010express книга б. оверленд с++без страха страница 81. проверка на простое число...

код, который в книге, mvc++2010express его не ругает, кажется рабочий.
Код:
// prime11.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
int main() {
	int n;
	int i;
	int is_prime;
	is_prime=true;
	cout << "enter a number and press enter: ";
	cin >> n;
	i=2;
	while (i<= sqrt(static_cast<double>(n))) {
		if (n % i == 0) 
			is_prime=false;
		
		i++;
	}
	if (is_prime)
		cout << "number is prime. ";
	else
		cout << "number is not prime.";
	return 0;
}
___+++++далее в книге оптимизация программы... тоже работпет
Код:
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
int main() {
	int n;
	int i;
	int is_prime;
	is_prime=true;
	cout << "enter a number and press enter: ";
	cin >> n;
	i=2;
	while (i<= sqrt(static_cast<double>(n))) {
		if (n % i == 0) {
			is_prime=false;
		break;
		}
		i++;
	}
	if (is_prime)
		cout << "number is prime. ";
	else
		cout << "number is not prime.";
	return 0;
}
далее идет упражнение: оптимизируйте программу еще раз,вычисляя квадратный корень числа n только один раз, а не раз за разом, как в примере. Чтобы выполнить такую оптимизацию, нужно обьявить еще одну переменную и установить ее значение равным квадратному корню числа n. тип переменной должен быть double. затем вы сможете использовать эту переменную в условии цикла for. напишите программу, содержачую как даннуюоптимизацию. так и оптимизацию из раздела*оптимизация программы*, целиком.
.Вот что я понаписывал, работает также, только невыжу где ошибка...
Код:
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
int main() {
	int n;
	int i;
	int is_prime;
	double z;
	is_prime=true;
	cout << "enter a number and press enter: ";
	cin >> n;
	z=sqrt(n);
	i=2;
	while (i<= z) {
		if (n % i == 0) {
			is_prime=false;
		break;
		}
		i++;
	}
	if (is_prime)
		cout << "number is prime. ";
	else
		cout << "number is not prime.";
	return 0;
}
Цитата:
1>------ Построение начато: проект: prime11, Конфигурация: Debug Win32 ------
1> prime11.cpp
1>c:\documents and settings\admin\мои документы\visual studio 2010\projects\prime11\prime11\prime 11.cpp(16): error C2668: sqrt: неоднозначный вызов перегруженной функции
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(589): может быть "long double sqrt(long double)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(541): или "float sqrt(float)"
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(127): или "double sqrt(double)"
1> при попытке сопоставить список аргументов "(int)"

Последний раз редактировалось Stilet; 31.07.2012 в 07:27.
notAstudent вне форума Ответить с цитированием
Старый 31.07.2012, 07:09   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,831
По умолчанию

прочитайте, что вам написал компилятор
p51x вне форума Ответить с цитированием
Старый 31.07.2012, 07:28   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
z=sqrt((double)n);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sqrt dedoki Общие вопросы C/C++ 2 28.03.2012 00:32
error C2668: 'sqrt' : ambiguous call to overloaded function Украина Visual C++ 3 08.01.2012 18:34
Вычислить sqrt(1.1+sqrt(1.2+...+sqrt(10) taka Помощь студентам 2 04.12.2011 09:44
Ошибка `sqrt' undeclared (first use this function) jasul Общие вопросы C/C++ 21 24.09.2011 13:57
sqrt в javascript PAVEL315 JavaScript, Ajax 1 09.02.2008 18:04