@mboze

Даны два массива. Получить новый массив, который содержит те элементы из массива А, квадратов В и наоборот?

Помогите пожалуйста с задачей:
Даны два массива: А(п) из п различных чисел и В(т) из т различных чисел. Получить новый массив, который содержит те элементы из массива А, квадратов которых нет в В и те элементы из массива В, квадратов которых нет в А.
Код программы, который есть:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp16
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите n");
            int n = int.Parse(Console.ReadLine());
            int[] A = new int[n];
            Console.WriteLine("Введите массив А");
            for (int i = 0; i < n; i++)
                A[i] = int.Parse(Console.ReadLine());

            Console.WriteLine("Введите m");
            int m = int.Parse(Console.ReadLine());
            int[] B = new int[m];
            Console.WriteLine("Введите массив B");
            for (int j = 0; j < m; j++)
                B[j] = int.Parse(Console.ReadLine());

            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                    if (A[i] * A[i] != B[j])
                        if (B[j] * B[j] != A[i])
                        {
                            int by = A[i];
                        }
                        else
                        {
                            int c = A[i];
                            Console.WriteLine("Новый массив "+c);
                        }
            Console.ReadLine();
        }
    }
}

Но что-то не работает, подскажите пожалуйста с решением
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
QuiShimo
@QuiShimo
Держу путь на бекэнд :)
Привет!

Ты немного не верно описал условие и понял задачу. Тебе необходимо следующие элементы:
  • элементы из массива А, квадратов которых нет в В
  • элементы из массива В, квадратов которых нет в А

Ты же ищешь элементы, которые соответствуют обоим условиям из массива А.

Также, ты не создаешь массив, а просто выводишь значения. В условии не сказано, что A и B равны по длине, это значит, что нужно найти количество элементов подходящих условию, чтобы создать массив С соответствующим размером.

После этого, тебе необходимо брать элементы из A и сравнивать с каждым из В, чтобы проверить есть ли в В квадрат А. Затем повторить тоже самое для элементов из В.
Код примерно такой:

Console.WriteLine("Массив С: ");

  // Просматриваем элемент А на выполнение условия
  for (int i = 0; i < n; i++)
        {
            int coutn = 0;
            for (int j = 0; j < m; j++)
            {
                if (A[i] * A[i] == B[j])
                    coutn++;   
                }
                if (coutn == 0)
                    Console.Write(A[i] + " ");
            }

            // повторяем для массива В
            for (int i = 0; i < m; i++)
            {
                int coutn = 0;
                for (int j = 0; j < j; j++)
                {
                    if (B[i] * B[i] == A[j])
                        coutn++;
                }
                if (coutn == 0)
                    Console.Write(B[i] + " ");
            }


Аналогично можно посчитать количество элементов и вывести их. Также, можно местами сократить код и доработать логику.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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