[C++] Funkcja i operacje na tablicach

paula07
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 3 cze 2013, o 21:09
Płeć: Kobieta
Lokalizacja: Słupsk

[C++] Funkcja i operacje na tablicach

Post autor: paula07 »

Mam do zrobienie takie zadanie i nie wiem jak zacząć, a facet nie tłumaczy dobrze.

Napisz funkcję, która otrzymuje cztery argumenty: dodatnią liczbę całkowitą n oraz trzy n-elementowe tablice tab1, tab2 i tab3 o elementach typu int i zamienia zawartości komórek otrzymanych w argumentach tablic w następujący sposób: — dla dowolnego i komórka tab1 powinna zawierać największą spośród pierwotnych wartości komórek tab1, tab2 oraz tab3. Napisz program testujący działanie funkcji.
Ostatnio zmieniony 11 cze 2013, o 17:04 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
jehor
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 11 cze 2013, o 23:19
Płeć: Mężczyzna
Lokalizacja: Opole

[C++] Funkcja i operacje na tablicach

Post autor: jehor »

"Napisz funkcję, która otrzymuje cztery argumenty: dodatnią liczbę całkowitą n oraz trzy n-elementowe tablice tab1, tab2 i tab3"

Kod: Zaznacz cały

void zamien(unsigned n, int *tab1, int *tab2, int *tab3)
"amienia zawartości komórek otrzymanych w argumentach tablic w następujący sposób: — dla dowolnego i komórka tab1 powinna zawierać największą spośród pierwotnych wartości komórek tab1, tab2 oraz tab3"
Skoro to jest C++, nie C, możemy użyć funkcji szablonowej max z STLa. Nie zapomnij o zaincludowaniu <algorithm>. Wykorzystaj własność:
max(a,b,c) = max(a, max(b,c))

Kod: Zaznacz cały

{
    for(int i=0; i<n; ++i)
    {
        tab1[i] = std::max(tab1[i], std::max(tab2[i], tab3[i]));
    }
}
W main() odpalaj funkcje testujące, w których tworzysz na stosie (na stercie też może być w sumie) 3 tablice, odpalasz funkcję na nich i za pomocą asercji sprawdzasz czy w tablicy1 są odpowiednie wartości.
paula07
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 3 cze 2013, o 21:09
Płeć: Kobieta
Lokalizacja: Słupsk

[C++] Funkcja i operacje na tablicach

Post autor: paula07 »

Kod: Zaznacz cały

#include <iostream>
#include <algorithm>

using namespace std;

void sortuj(int n, int* tab1, int* tab2, int* tab3)
{
    for (int i=0; i<n; ++i)
    {
        int T[]={tab1[i],tab2[i],tab3[i]};
        sort(T,T+3);
        tab3[i]=T[0];
        tab2[i]=T[1];
        tab1[i]=T[2];
    }
}

int main()
{
    ios::sync_with_stdio(0);
    
    int n;
    cin>>n;
    
    int *tab1=new int[n],*tab2=new int[n],*tab3=new int[n];
    for (int i=0; i<n; ++i) cin>>tab1[i];
    for (int i=0; i<n; ++i) cin>>tab2[i];
    for (int i=0; i<n; ++i) cin>>tab3[i];
    
    sortuj(n,tab1,tab2,tab3);
    for (int i=0; i<n; ++i) cout<<tab1[i]<<;
    cout<<endl;
    for (int i=0; i<n; ++i) cout<<tab2[i]<<;
    cout<<endl;
    for (int i=0; i<n; ++i) cout<<tab3[i]<<;
    
    int xyz;
    cin>>xyz;
    
    return 0;
}
znalazłam coś takiego i nie wiem teraz jak napisać program testujący tą funkcję. Czy ktoś mógłby pomóc
ODPOWIEDZ