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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2012, 00:24   #1
smaiq
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 16
По умолчанию C++ ищу ошибку, ветвление

Код:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
	int x;
	cin>>x;
	switch(x)
	{
	case 1:
		cout<<sin(x)<<endl;
		break;
	case 2:
		cout<<cos(x)<<endl;
		break;
	case 3:
		cout<<tan(x)<<endl;
		break;
	default:
		cout<<x<<endl;
		break;
	}
	system("pause");
	return 0;
}
1.cpp(11) : error C2668: sin: неоднозначный вызов перегруженной функции
math.h(577): может быть 'long double sin(long double)'
\math.h(529): или 'float sin(float)'
\math.h(124): или 'double sin(double)'
при попытке сопоставить список аргументов '(int)'
та же ошибка при вычислении косинуса и тангенса
а задача:
система уравнений:
sin x, x=1
cos x, x=2
tan x, x=3
x, x<>1,2,3;(не равно)

Последний раз редактировалось Stilet; 25.12.2012 в 11:25.
smaiq вне форума Ответить с цитированием
Старый 25.12.2012, 00:49   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Компилятор вам все написал. Нету тригонометрических функций, принимающих целое число... сделайте приведение типов к одному из вариантов.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 25.12.2012, 01:01   #3
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Странный какой-то компилятор у вас. Там шаблон должен быть описан при описании 3гр функций. Должно быть всё окей.
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 25.12.2012, 04:34   #4
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

компил чудной.
для С++ что float что int одно и тоже.....
возможно у вас свой инт или компилу кажеться что инт это не число вобще? скорее это варнинги... ибо и то и то ... бредово звучит.
----
добавлю что, long double я лично не слышал что и без того число с плавающей точкой удвоенной точности было ещё длинее. тем более в своей либе я не нашёл такого чуда.
может быть такой тип и можно организовать... но это будет тоже самое как long int.
или попросту long. исключение long long это int64.
/****
про лонг доубле. нашёл в 64 рязрядной компиляции используеться такой тип. бер свой язык и кладу на место
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 25.12.2012 в 04:48.
Perchik71 вне форума Ответить с цитированием
Старый 25.12.2012, 05:09   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Perchik71, есть три типа вещественных чисел у С++ под x86(про x64 не знаю):
float, 4 байта.
double, 8 байт.
long double, 10 байт.

но все версии поддерживают все три типа.


интересно что за компилятор, ибо у gcc последний отлично компилит все.

а решение, вручную описать конкретное приведение, либо же использовать один из вещественных типов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 25.12.2012 в 05:12.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.12.2012, 09:04   #6
smaiq
Пользователь
 
Регистрация: 24.12.2012
Сообщений: 16
По умолчанию

для интересующихся - юзаю visual studio C++ 2008 express
smaiq вне форума Ответить с цитированием
Старый 25.12.2012, 19:56   #7
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от smaiq Посмотреть сообщение
для интересующихся - юзаю visual studio C++ 2008 express
скорее так настроен компил.... приведи к типу long double явно...
Код:
long double t = sin((long double)number);
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ветвление Samuel Паскаль, Turbo Pascal, PascalABC.NET 2 11.10.2011 23:53
ветвление Rfn.if Помощь студентам 4 13.10.2010 14:26
Ветвление Woxx Паскаль, Turbo Pascal, PascalABC.NET 6 07.09.2010 17:26
Ищу ошибку в программе. Tonik_A Помощь студентам 1 08.12.2009 23:38
Ищу ошибку в програме на prolog Komunizm Помощь студентам 4 15.08.2009 02:17