Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > проблема с геометрич. прогой


Автор: Мита 20.6.2005, 11:49
Нужно найти площадь правильного многоугольника по заданной стороне и количеству сторон.

Написала прогу, а она выдает длеление на ноль и 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;}

Автор: comcon1 20.6.2005, 12:10
Scanf-у надо адресса давать, а не самих.
Код

scanf("%d", &var);

Автор: Earnest 20.6.2005, 12:46
Другие нехорошие вещи в коде:

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

Код

float angle = 180.0/n;


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

Автор: Мита 20.6.2005, 12:52
ой, ёёё, это ж надо было так не заметить... smile

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


Код

float angle = 180.0/n;


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


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

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

Автор: Мита 28.6.2005, 00:55
Вот лабы и сданы, всем спасибо за внимание smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)