КЯ
Константин Яров

помогите, проверьте программу на си++

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

#include
#include
#include

int main(void)
{
double x1,x2,y1,y2,r1,r2;
printf("vvedite koordinaty pervoy okruznosty:\n");
scanf_s("%f%f", &x1,&y1 );
printf("vvedite koordinaty vtoroy okruznosty:\n");
scanf_s("%f%f", &x2,&y2 );
printf("vvedite radius pervoyokruznosti:\n");
scanf_s("%f", &r1);
printf("vvedite radius vtoroy okruznosti:\n");
scanf_s("%f", &r2);
double s=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
if (r1+r2r2+s)
{
printf("Okruzhnost 2 lezhit v okruzhnosty 1\n");
}
if (r2>r1+s)
{
printf("Okruzhnost 1 lezhit v okruzhnosty 2\n");
}
else
{
printf("u okruzhnostey dve obschie tochki(oni peresekayutsya)\n");
}
fgetc(stdin);
fgetc(stdin);
return 0;
}

вот программа
#include
#include
#include

int main(void)
{
double x1,x2,y1,y2,r1,r2;
printf("vvedite koordinaty pervoy okruznosty:\n");
scanf_s("%f%f", &x1,&y1 );
printf("vvedite koordinaty vtoroy okruznosty:\n");
scanf_s("%f%f", &x2,&y2 );
printf("vvedite radius pervoyokruznosti:\n");
scanf_s("%f", &r1);
printf("vvedite radius vtoroy okruznosti:\n");
scanf_s("%f", &r2);
double s=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
if (r1+r2r2+s)
{
printf("Okruzhnost 2 lezhit v okruzhnosty 1\n");
}
if (r2>r1+s)
{
printf("Okruzhnost 1 lezhit v okruzhnosty 2\n");
}
else
{
printf("u okruzhnostey dve obschie tochki(oni peresekayutsya)\n");
}
fgetc(stdin);
fgetc(stdin);
return 0;
}

почему-то часть только вставляется... 1 часть

#include
#include
#include

int main(void)
{
double x1,x2,y1,y2,r1,r2;
printf("vvedite koordinaty pervoy okruznosty:\n");
scanf_s("%f%f", &x1,&y1 );
printf("vvedite koordinaty vtoroy okruznosty:\n");
scanf_s("%f%f", &x2,&y2 );
printf("vvedite radius pervoyokruznosti:\n");
scanf_s("%f", &r1);
printf("vvedite radius vtoroy okruznosti:\n");
scanf_s("%f", &r2);
double s=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
if ( r1+r2

ВЮ
Виталий Юрьевич

Как определяется расположение думать лень, но первое что увидел:
Не важно, верно ли условие первого оператора if или не верно, все равно дальше будет выполнен второй IF.
А по логике, если условие первого IF - истина, второй выполняться не должен.
Могу ошибаться, но:

if (r1+r2r2+s)
{
printf("Okruzhnost 2 lezhit v okruzhnosty 1\n");
}
else
{
if (r2>r1+s)
{
printf("Okruzhnost 1 lezhit v okruzhnosty 2\n");
}
else
{
printf("u okruzhnostey dve obschie tochki(oni peresekayutsya)\n");
}
}

То есть, если в первом случае условие - истина, дальше просто ничего не сравниваем, а если ложь - смотрим другие варианты.

ВФ
Владимир Фролов

if (r1+r2r2+s)
У вас скобки непарные - это синтаксическая ошибка.
Но всё равно - нельзя так делать. Первый операнд (r1+r2

Похожие вопросы
Помогите написать программу на языке СИ/СИ++!!
Друзья, помогите, пожалуйста, написать программу на СИ.
пожалуйста помогите написать программу на языке си.
Проверьте, что не правильно в программе.
Помогите исправить ошибки в программе на языке СИ.
помогите написать план, для написания программы на си
Программа на си. Помогите
Простенькая программа на си
Помогите с программой в СИ++.
проверьте кто-нибудь, пожалуйста, код программы на Си, правильно ли?