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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2013, 02:51   #1
Tarcom
 
Регистрация: 02.10.2013
Сообщений: 3
По умолчанию Помогите исправить ошибку (язык C)- error C2106: =: левый операнд должен быть левосторонним значением

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (){
	float c,d,x,y,op,cp,dp,pol1,pol2,pol3,s1,s2,s3,cd;
	printf ("Input c,d:");
    scanf ("%f%f",&c,&d);
    printf ("Input x,y:");
    scanf ("%f%f",&x,&y);
	cd=pow(pow(c,2)+pow(d,2),1/2);
    op=pow(pow((x-0),2)+pow((y-0),2),1/2);
    cp=pow(pow((x-0),2)+pow((y-c),2),1/2);
    dp=pow(pow((x-d),2)+pow((y-0),2),1/2);
    pol1=(c+cp+op)/2;
    s1=pow(pol1*(pol1-c)*(pol1-cp)*(pol1-op),1/2);
    pol2=(cp+cd+dp)/2;
    s2=pow(pol2*(pol2-cp)*(pol2-cd)*(pol2-dp),1/2);
    pol3=(dp+d+op)/2;
    s3=pow(pol3*(pol3-dp)*(pol3-d)*(pol3-op),1/2);
	if (x<0 && y>0 && c*d/2 = s1+s2+s3 && s1>0 && s2>0 && s3>0)
		printf ("Point in A");
	else
		if (x>0 && y<0 && c*d/2 = s1+s2+s3 && s1>0 && s2>0 && s3>0)
			printf ("Point in B");
	else printf ("Point not in A,B");
	getch ();
	}
ошибка возникает в строках с if под x
Tarcom вне форума Ответить с цитированием
Старый 03.10.2013, 02:55   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

1) Не нужно кросспостить
2) 1/2 = 0, так как считается в целых числах
Пишите 0.5 или 1.0/2 (отмечено type_Oleg в прошлой теме)
3) c*d/2 = s1+s2+s3 - операция присваивания, а не сравнения
Сравнивать нужно c*d/2 == s1+s2+s3 (отмечено Bugrimov в прошлой теме)
Отмечу также, что сравнивать действительные числа на равенство правильнее так:
fabs(c*d/2 - (s1+s2+s3)) < delta, где delta - малое число, например, 0.00001
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 03.10.2013 в 02:58.
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку:run-time error 424 Kigali Microsoft Office Excel 2 22.09.2013 16:22
Выражение должон быть допустимо для изменения левосторонним значемнием jesterXXX Помощь студентам 3 22.01.2013 23:35
Исправить ошибку. Язык Си. Yakoff Помощь студентам 2 25.12.2012 21:31
начальное значение ссылки на левосторонний параметр должно быть левосторонним значением Dimarik Общие вопросы C/C++ 3 03.03.2011 23:14