Вопрос задан 18.07.2023 в 03:57. Предмет Информатика. Спрашивает Безверхня Яна.

Есть следующая прога. задание - есть прямоугольнихи на плоскости стороны // осям даны координаты

левых нижних углов прямоугольников и даны их ширина и высота нужно вывести координаты прямоугольника котрый задется пересечением этих прямоугольников и общий образованный двумя прямоугольниками прямоугольник using System; namespace ConsoleApp8 { class Program { static void Main(string[] args) { int x1, y1, a1, b1, x2, y2, a2, b2, k1, k2, k3, k4, j1, j2, j3, j4; //a - длина по х Console.WriteLine("введите сначала Х потом У потм длину по Х потом по У"); x1 = Console.Read(); y1 = Console.Read(); a1 = Console.Read(); b1 = Console.Read(); x2 = Console.Read(); y2 = Console.Read(); a2 = Console.Read(); b2 = Console.Read(); j1 = 0; j2 = 0; j3 = 0; j4 = 0; k1 = 0; k2 = 0; k3 = 0; k4 = 0;// if (x1 < x2 && x1 + a1 > x2 && y1 < y2 && y1 + b1 > y2) { Console.WriteLine("пересекаются"); if(x1>x2) { k1 = x2; k2 = x1; k3 = x2 + a2; k4 = x1 + a1; } else { k1 = x1; k2 = x2; k3 = x1 + a1; k4 = x2 + a2; } // if (y1 > y2) { j1 = y2; j2 = y1; j3 = y2 + b2; j4 = y1 + b1; } else { j1 = y1; j2 = y2; j3 = y1 + b1; j4 = y2 + b2; } } Console.WriteLine("координаты внутреннего " + k2 + " " + j2 + " ;" + k2 + " " + j3 + " ;" + k3 + " " + j3 + "; " + k3 + " " + j2); Console.WriteLine("координаты внешнего " + k1 + " " + j1 + "; " + k1 + " " + j4 + "; " + k4 + " " + j4 + "; " + k4 + " " + j1); Console.ReadLine(); } } } работает ,но работает не корректно. работа выполнена на си шарпе необходимо было сделать задачу с помощью классов но я обошелся без них и сделал по тупому обьясните почему после ввода вроде бы 3 идентификатора все хренрово
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Алексеев Денис.
Using System))
Длина - а
Ширина - б
Высота - h
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Понимаю вашу проблему. Похоже, основная проблема вашего кода связана с тем, что вы используете неправильный метод Console.Read() для считывания входных значений. Метод Console.Read() считывает только один символ из входного потока (stdin) и возвращает его как целое число (int). В этом случае он читает символы для ввода X, Y, длины по X и длины по Y для двух прямоугольников. Но такой подход некорректен для ввода чисел, состоящих из нескольких цифр.

Вам следует использовать Console.ReadLine(), чтобы считывать строку ввода, а затем преобразовывать эту строку в целое число с помощью int.Parse() или int.TryParse().

Я поправил ваш код, используя Console.ReadLine() и int.Parse():

csharp
using System; namespace ConsoleApp8 { class Program { static void Main(string[] args) { int x1, y1, a1, b1, x2, y2, a2, b2, k1, k2, k3, k4, j1, j2, j3, j4; Console.WriteLine("Введите сначала X, потом Y, потом длину по X, потом по Y для первого прямоугольника:"); x1 = int.Parse(Console.ReadLine()); y1 = int.Parse(Console.ReadLine()); a1 = int.Parse(Console.ReadLine()); b1 = int.Parse(Console.ReadLine()); Console.WriteLine("Введите сначала X, потом Y, потом длину по X, потом по Y для второго прямоугольника:"); x2 = int.Parse(Console.ReadLine()); y2 = int.Parse(Console.ReadLine()); a2 = int.Parse(Console.ReadLine()); b2 = int.Parse(Console.ReadLine()); j1 = 0; j2 = 0; j3 = 0; j4 = 0; k1 = 0; k2 = 0; k3 = 0; k4 = 0; if (x1 < x2 + a2 && x1 + a1 > x2 && y1 < y2 + b2 && y1 + b1 > y2) { Console.WriteLine("Прямоугольники пересекаются."); if (x1 > x2) { k1 = x2; k2 = x1; k3 = x2 + a2; k4 = x1 + a1; } else { k1 = x1; k2 = x2; k3 = x1 + a1; k4 = x2 + a2; } if (y1 > y2) { j1 = y2; j2 = y1; j3 = y2 + b2; j4 = y1 + b1; } else { j1 = y1; j2 = y2; j3 = y1 + b1; j4 = y2 + b2; } } else { Console.WriteLine("Прямоугольники не пересекаются."); } Console.WriteLine("Координаты внутреннего прямоугольника: " + k2 + " " + j2 + "; " + k2 + " " + j3 + "; " + k3 + " " + j3 + "; " + k3 + " " + j2); Console.WriteLine("Координаты внешнего прямоугольника: " + k1 + " " + j1 + "; " + k1 + " " + j4 + "; " + k4 + " " + j4 + "; " + k4 + " " + j1); Console.ReadLine(); } } }

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

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос