Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с геометрич. прогой 
:(
    Опции темы
Мита
Дата 20.6.2005, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.5.2005

Репутация: нет
Всего: нет



Нужно найти площадь правильного многоугольника по заданной стороне и количеству сторон.

Написала прогу, а она выдает длеление на ноль и Abnormal program termination. Я не могу разобраться почему она не хочет работать, в чем ошибка
(функция вычисления площади, ввод и вывод данных должен производиться из main).

Код

#include <stdio.h>    
#include <math.h>    
float sq(int, float);    
void main(void)    
{   int chislo; float dlina,c;    
printf("Введите число сторон");    
scanf("%d",chislo);    
printf("Введите длину стороны");    
scanf("%f",dlina);    
c=sq(chislo,dlina);    
printf("Площадь многоугоника равна:",c);    
    }    
float sq(int n,float a)    
{    
float angle=180/n;    
float rad=(acos(-1)/180)*angle;    
float s=(a*a*n*cos(rad))/(4*sin(rad));    
return s;}


Это сообщение отредактировал(а) Мита - 20.6.2005, 12:03
PM MAIL   Вверх
comcon1
Дата 20.6.2005, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: 12
Всего: 17



Scanf-у надо адресса давать, а не самих.
Код

scanf("%d", &var);



--------------------
PM MAIL   Вверх
Earnest
Дата 20.6.2005, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Другие нехорошие вещи в коде:

1) 180/n - это целочисленное выражение: если n не кратно 180, то результат будет неправильный.
Правильно, например, так:

Код

float angle = 180.0/n;


2) Разве в заголовочном файле "math.h" нет констант типа M_PI, а то каждый раз вычислять ради этого acos как-то слишком...


--------------------
...
PM   Вверх
Мита
Дата 20.6.2005, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.5.2005

Репутация: нет
Всего: нет



ой, ёёё, это ж надо было так не заметить... smile

Цитата
1) 180/n - это целочисленное выражение: если n не кратно 180, то результат будет неправильный.
Правильно, например, так:


Код

float angle = 180.0/n;


Хм все равно не точно вычисляет, даже когда число сторон кратно 180


Цитата
2) Разве в заголовочном файле "math.h" нет констант типа M_PI, а то каждый раз вычислять ради этого acos как-то слишком...

Это не моя прихоть, так захотел препод

Это сообщение отредактировал(а) Мита - 20.6.2005, 17:37
PM MAIL   Вверх
Мита
Дата 28.6.2005, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.5.2005

Репутация: нет
Всего: нет



Вот лабы и сданы, всем спасибо за внимание smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1201 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.