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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2011, 22:26   #1
Dan.D
 
Регистрация: 24.09.2011
Сообщений: 6
По умолчанию Программа "Выести значения координат треугольника в порядке обхода по часовой стрелке"

Заданы координаты трёх точек на плоскости: А(ха;уа), В(хв;ув), С(хс;ус). Необходимо вывести из значения в порядке обхода по часовой стрелке, начиная с Оу.
Как я понял целесообразно делать это через угол межу осью и векторами ОА, ОВ, ОС. Первым выводится та координата-у радиус-вектора которой угол наименьший. Чтобы не мучится с предельными случаями, когда yn=0, я выбрал функцию косинуса. Программу надо написать на языке С. Помогите с написанием.
Код:
// 12.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>
#include <conio.h>
#include <stdio.h>


void main() 
{ 
 
  float A,B,C,xa,ya,xb,yb,xc,yc; 
  
   printf ("Vvedite koordinaty tochki A\n"); 
   scanf ("%f %f ",&xa,&ya); 
printf ("Vvedite koordinaty tochki B\n"); 
   scanf ("%f %f ",&xb,&yb);
   printf ("Vvedite koordinaty tochki C\n"); 
   scanf ("%f %f ",&xc,&yc); 
if(xa=xb=xc)
{if(ya=yb=yc) printf("Vvedennaia vami figura-tochka\n");
else printf ("Treygolnik ne sushestvyet\n");}
else cos(A)=(ya/sqrt(xa*xa+ya*ya));
	  cos(B)=yb/sqrt(xb*xb+yb*yb);
	  cos(C)=ya/sqrt(xc*xc+yc*yc);
Да и ещё. Что это за ошибка? error C2106: '=' : left operand must be l-value
Dan.D вне форума Ответить с цитированием
Старый 28.09.2011, 00:33   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Что это за ошибка? error C2106: '=' : left operand must be l-value

в этот мусор я не смотрел, но ошибка говорит о том, что используемое выражение не может находится в левой части оператора присваивания.

подробнее - гоогле "что такое l-value"
Rififi вне форума Ответить с цитированием
Старый 28.09.2011, 01:01   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1)
Цитата:
Код:
if(xa=xb=xc)
{if(ya=yb=yc)
это не сравнение, а присвоение...
вероятно, Вы хотели написать так
Код:
if ((xa==xb) && (xb==xc))
{ if ((ya=yb) &&  (yb==yc)) ..
ну и дальше тоже самое:
Цитата:
Код:
else cos(A)=(ya/sqrt(xa*xa+ya*ya));
это вы косинусу присвоить выражение пытаетесь? Вот он и ругается, что левой части присваивать нельзя...


p.s. А смысла кода (алгоритма) я не понял, прошу простить...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
повернуть квадратную матрицу на 90 градусов по часовой стрелке brans Общие вопросы по Java, Java SE, Kotlin 1 18.02.2011 19:42
Перевод "пространственных" координат в "экранные" , смена перспективы , вращение. vedro-compota Общие вопросы Delphi 6 08.06.2010 21:59
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Как перевернуть изображение по часовой стрелке John_chek Мультимедиа в Delphi 7 09.07.2007 00:24