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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 21:17   #1
ensoleille
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 25
По умолчанию Функции

Площадь треугольника, заданного координатами своих вершин, находится по формуле
S = 0.5 * |x1y2 + x2y3 + x3y1 - x1y3 - x2y1 -x3y2|.
Используя функцию для вычисления площади треугольника, определить площадь выпуклого четырехугольника ABCD, заданного координатами своих вершин.


Код:
#include<conio.h>
#include<math.h>
#include<stdio.h>
float s3,s4;
void main()
{
	int x1,x2,x3,x4,y1,y2,y3,y4;

	float  S3(int,int,int,int,int,int);
	float S4(int,int,int,int,int,int,int,int);

	
	puts("Vvedite koordinati verwini - x1");
	scanf("%f",&x1);
	puts("Vvedite koordinati verwini - x2");
	scanf("%f",&x2);
	puts("Vvedite koordinati verwini - x3");
	scanf("%f",&x3);
	puts("Vvedite koordinati verwini - x4");
	scanf("%f",&x4);


	puts("Vvedite koordinati verwini - y1");
	scanf("%f",&x1);
	puts("Vvedite koordinati verwini - y2");
	scanf("%f",&y2);
	puts("Vvedite koordinati verwini - y3");
	scanf("%f",&y3);
	puts("Vvedite koordinati verwini - y4");
	scanf("%f",&y4);
	
	s3=S3(x1,x2,x3,y1,y2,y3);
	s4=S4(x1,x2,x3,x4,y1,y2,y3,y4);

	printf("S3 = %.2f\nS4 = %.2f\n",S3,S4);
	
	getch();
}
float S3(int x1, int x2,int x3, int y1, int y2, int y3)
{

	int a = fabs(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2);
	float S3 = 0.5*a ;
	//printf("S 3 = %f",S3);
	return S3;
}
float S4(int x1, int x2,int x3, int x4,int y1, int y2, int y3,int y4)
{
	float S1=S3(x1,x2,x3,y1,y2,y3);
	float l1,l2,l3,S2;
	l1=sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));
	l2=sqrt(((x3-x2)*(x3-x2))+((y3-y2)*(y3-y2)));
	l3=sqrt(((x3-x1)*(x3-x1))+((y3-y1)*(y3-y1)));
	if ((l1>l2) && (l1>l3)) S2=S3(x4,x2,x3,y4,y2,y3);
	if ((l2>l1) && (l2>l3)) S2=S3(x4,x1,x3,y4,y1,y3);
	if ((l3>l1) && (l3>l2)) S2=S3(x4,x1,x2,y4,y1,y2);
	float S4=S1+S2;
	//printf(" S4 = %f",S4);
	return S4;
}
Координаты вводятся нормально,и всё

Последний раз редактировалось ensoleille; 06.07.2011 в 22:28.
ensoleille вне форума Ответить с цитированием
Старый 06.07.2011, 22:50   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,833
По умолчанию

Код:
printf("S3 = %.2f\nS4 = %.2f\n",S3,S4);
Тут нужны ваши переменные, т.е. s3, s4 - маленькие...
p51x вне форума Ответить с цитированием
Старый 06.07.2011, 23:04   #3
ensoleille
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 25
По умолчанию

спасибо, не заметила)
ensoleille вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мини бэйсик:объявление функции, вызов функции , возврат. AL_LORD Помощь студентам 2 14.10.2010 17:48
Программа на СИ++, используя функции работы с файлами и функции <string.h> Аня Popova Фриланс 9 13.09.2010 15:52
Функции в си. Вывод двумерного массива из функции. Evgen51 Общие вопросы C/C++ 9 13.05.2010 03:59
Чем отличается описание функции от определения функции в С++? Go6a Помощь студентам 4 18.07.2009 18:07
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57