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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2012, 15:01   #1
Dimanduc
Пользователь
 
Регистрация: 25.02.2009
Сообщений: 40
По умолчанию в программа - ошибка

Написал программу которая вычисляет площадь треугольника по двум сторонам и углу между ними:

Код:
#include <conio.h>
#include <stdio.h>
#include "math.h"
#include <iostream>
using std::cout;

int main()
{
		int st1, st2, ugol;
		printf("vvedite sheres probel dlini dvuch storon treugolnika:\n -> ");
		scanf("%d %d",&st1, &st2);
		printf("vvedite velichinu ugla meshdu storonami:\n -> ");
		scanf("%d",&ugol);
		printf("ploshad' ravna %5.3f",0.5*st1*st2*sin(ugol));
		_getch();
		return 0;
}
Возникает такая ошибка, в программе красным подчеркивается sin:
Код:
(14): error C2668: 'sin' : ambiguous call to overloaded function
Что это такое?
Dimanduc вне форума Ответить с цитированием
Старый 24.07.2012, 15:11   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Функция sin() работает либо с float, либо double аргументом. У вас аргумент int и компилятор не знает в какой из двух его переделать. В вашем случае легче всего сделать каст в вызове sin - sin( double ( ugol ) );
Кстати, учтите, что sin() работает с углами в радианах
waleri вне форума Ответить с цитированием
Старый 24.07.2012, 16:02   #3
Dimanduc
Пользователь
 
Регистрация: 25.02.2009
Сообщений: 40
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Функция sin() работает либо с float, либо double аргументом. У вас аргумент int и компилятор не знает в какой из двух его переделать. В вашем случае легче всего сделать каст в вызове sin - sin( double ( ugol ) );
Кстати, учтите, что sin() работает с углами в радианах
Спасибо большое)
Dimanduc вне форума Ответить с цитированием
Старый 24.07.2012, 17:33   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Я бы сказал, что легче обойтись без всяких кастов и объявить переменные типа double, чем огород городить. Тем более, как вы введете угол типа пи/4 (45 градусов), если в переменной может храниться только целое? Я уж не говорю о том, что стороны тоже могут быть нецелые.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
самая простая программа - ?ошибка? =. Katus Общие вопросы C/C++ 3 30.04.2012 20:40
где ошибка в коде? Программа на С АлинКО Помощь студентам 2 15.01.2012 14:03
Ошибка в программа (Fortran) Далила Помощь студентам 4 14.01.2011 19:13
Программа на Си.Подскажите где ошибка champion92 Общие вопросы C/C++ 1 08.12.2009 20:03
Программа с использованием STL. Где ошибка?! Jarik Общие вопросы C/C++ 1 04.03.2009 10:32