Porównanie dwoch tablic z liczbami i wyświetlenie wyniku

0

Dopiero zaczynam swoją przygodę z programowaniem, próbuję napisać program, który porówna dwie tablice pięcioelementowe typu int, a następnie jeśli wszystkie elementy będą równe wyświetli 1, jesli nie to 0. Elementy w tablicach mogą się powtarzać. W moim kodzie nie działa ostatnia część polecenia- program wysypuje się przy powtórzeniach, gdzie robię błąd? Proszę o wskazówkę i z góry dziękuję ;)

#include <iostream>
using namespace std;
int main()
{
    int c=0;
    int tab[5], TAB[5];
    for(int i=0; i<5; i++)
    {
    cin>> tab[i];
    }
    for(int j=0; j<5; j++)
    {
    cin>> TAB[j];
    }
    for(int i=0; i<5; i++)
    {
         for(int j=0; j<5; j++)
        {
        if(tab[i]==TAB[j])
        {
           c++;
        }

        }
        }
        if (c==5)
        {cout << 1;
        }
        else {
            cout<<0;
        }
   return 0;
}
1

program, który porówna dwie tablice pięcioelementowe typu int

std::array<int,5> arr1{/*values*/};
std::array<int,5> arr2{/*values*/};
if(std::equal(arr1.begin(), arr1.end(), arr2.begin()))
   std::cout << "1";
else
   std::cout << "0";

Jeżeli tablice będą mogły mieć różny rozmiar

if(arr1.size() == arr2.size() && std::equal(arr1.begin(), arr1.end(), arr2.begin()))

Jeżeli możesz użyc C++17

if(std::equal(arr1.begin(), arr1.end(), arr2.begin(), arr2.end()))
0

Twój program kompiluje się normalnie, lecz podaje zły wynik przy powtarzających się liczbach w tablicach.

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
	int tab[5], TAB[5];
	int c = 0;

	for (int i = 0; i<5; i++) { cin >> tab[i]; }

	for (int i = 0; i<5; i++) { cin >> TAB[i]; }

        // sortowanie tablic rosnąco
	sort(tab, tab + 5); 
	sort(TAB, TAB + 5);

	for (int i = 0; i < 5; i++)
	{
		if (tab[i] == TAB[i]) { c++; }
	}

	if (c == 5) { cout << 1; }
	else { cout << 0; }

	return 0;
}
0

Dziekuję bardzo za pomoc, wszystko stało się jasne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1