Member 14197103 Ответов: 2

Выиграй или проиграй вопрос


#include<bits/stdc++.h> 
using namespace std; 
  
// Returns true if arr1[0..n-1] and arr2[0..m-1] 
// contain same elements. 
bool areEqual(int arr1[], int arr2[], int n, int m) 
{ 
    // If lengths of array are not equal means 
    // array are not equal 
    if (n != m) 
        return false; 
  
    // Sort both arrays 
    sort(arr1, arr1+n); 
    sort(arr2, arr2+m); 
  
    // Linearly compare elements 
    for (int i=0; i<n; i++) 
         if (arr1[i] != arr2[i]) 
            return false; 
  
    // If all elements were same. 
    return true; 
} 
  
// Driver Code 
int main() 
{ 
    int arr1[] = { 3, 5, 2, 5, 2}; 
    int arr2[] = { 2, 3, 5, 5, 2}; 
    int n = sizeof(arr1)/sizeof(int); 
    int m = sizeof(arr2)/sizeof(int); 
  
    if (areEqual(arr1, arr2, n, m)) 
        cout << "Yes"; 
    else
        cout << "No"; 
    return 0; 
} 

вместо предопределенного количества массивов, то есть 2, я должен спросить у пользователя, сколько массивов нужно определить и их значения

Что я уже пробовал:

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

2 Ответов

Рейтинг:
2

Richard MacCutchan

int arraySize;
cin >> arraySize;
int array = new int[arraySize];


Member 14197103

не размер, сэр, а количество определяемых массивов.

KarstenK

Правильный. А затем цикл for get запрашивает все элементы. Сделайте некоторый вывод, чтобы сообщить пользователю, где он находится, например: "теперь ввод для элемента 3".

Member 14197103

что правильно. Мне нужен пользовательский экземпляр массива.Если пользователь вводит 3, мне нужно определить массив 3, а не массив с размером 3.

Richard MacCutchan

Итак, определите три массива. Я дал вам код для одного из них, остальные точно такие же.

Member 14197103

но как вы можете назвать все три массива, потому что вы узнаете, что есть три массива только после того, как пользователь ввел 3.

Richard MacCutchan

Используйте массив указателей. Что-то вроде:

int count;
cin >> count;
int* arrays = new int*[count];
// now add a loop to create the actual arrays:
for (int i = 0; i < count; ++i)
{
    arrays[i] = new int[arraySize];
}

Рейтинг:
0

OriginalGriff

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

Поэтому нам нужно, чтобы вы сделали эту работу, и мы поможем вам, когда вы застрянете. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.

Просто свалив на нас свою домашнюю работу и сказав: "У меня есть решение, но ..." - это не сломает лед здесь.


Member 14197103

я пробовал, я застрял на определенном пользователем n количестве массива.

bool areEqual(int arr1[], int arr2[], int n, int m)
{
сортировка(arr1, arr1+n);
сортировка(arr2, arr2+m);

// Линейное сравнение элементов
for (int i=0; i

OriginalGriff

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

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

Member 14197103

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

OriginalGriff

А! Настоящий английский - это помогает.

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