Jak zamienić miejscami 2 wybrane elementy tablicy? np
Jest dana tablica int T[6]={2,4,23,1,7,9}
znajdujemy w niej element max i element min w tym wypadku max=23 min=1.
Jak zrobić aby wyswietlana tablica wyglądała tak {2,4,1,23,7,9}.
Jak zamienić miejscami 2 wybrane elementy tablicy? np
Jest dana tablica int T[6]={2,4,23,1,7,9}
znajdujemy w niej element max i element min w tym wypadku max=23 min=1.
Jak zrobić aby wyswietlana tablica wyglądała tak {2,4,1,23,7,9}.
Zakładając, że chcesz zamienić miejscami elementy tab[i] oraz tab[j]:
tmp = tab[i];
tab[i] = tab[j];
tab[j] = tmp;
chyba logiczne?
...
lub skorzystać z funkcji swap.
tab[i] = (tab[i] + tab[j]) - (tab[j] = tab[i])
const int T[8]={2,4,-22,-4,88,6,98,1};
int main(int argc, char *argv[])
{
int i,max,min;
max=T[0];
min=T[0];
for (i=0;i<8;i++)
{
if (T[i]>max)
{
max=T[i];
}
if (T[i]<min)
{
min=T[i];
}
cout<<T[i]<<",";
}
cout<<"\n\n max="<<max<<",min="<<min<<endl<<endl;
To jest kod ,który wyświetla elementy tablicy i wartość najmniejszą i największą.
Wyświetli : 2,4,-22,-4,88,6,98,1
max=98,min=-22
Tylko jak zrobić by wyświetlało kolejną tablicę tylko ,że max i min są zamienione miejscami tzn 2,4,98,-4,88,6,-22,1
Kolejną czyli chcesz mieć 2 tablice czy wyświetlić zmodyfikowaną wersję tej? Bo jak 2 to trzeba by kopię tej zrobić i potem zamienić tak jak wyżej pisali, ew podczas kopiowania stosownymi if-ami zamienić. Potem wyświetlasz albo drugą tablicę albo tą samą jeszcze raz.
sig napisał(a)
Kolejną czyli chcesz mieć 2 tablice czy wyświetlić zmodyfikowaną wersję tej? Bo jak 2 to trzeba by kopię tej zrobić i potem zamienić tak jak wyżej pisali, ew podczas kopiowania stosownymi if-ami zamienić. Potem wyświetlasz albo drugą tablicę albo tą samą jeszcze raz (swoją drogą skoro wyświetlasz 2x to można by wyświetlanie do funkcji przenieść).
A można prosić o kod bo mi to zupełnie nie wychodzi. :(
Na początek zdecyduj się czy mają być 2 tablice czy jedna, poza tym to prosta przeróbka, masz nawet gotowy kod do skopiowania i wklejenia, potem już tylko drugie wyświetlenie czyli for (i=0;i<8;i++) cout<<T[i]<<","; (w forze tylko jedna linijka wiec nawiasy zbędne) jak 2 tablice to zamiast T naturalnie nazwa tej drugiej.
sig napisał(a)
Na początek zdecyduj się czy mają być 2 tablice czy jedna, poza tym to prosta przeróbka, masz nawet gotowy kod do skopiowania i wklejenia, potem już tylko drugie wyświetlenie czyli for (i=0;i<8;i++) cout<<T[i]<<","; (w forze tylko jedna linijka wiec nawiasy zbędne) jak 2 tablice to zamiast T naturalnie nazwa tej drugiej.
Chcę 2 tablice. Rozumiem że tę drugą tablicę mam zadeklarować tzn int T[j] , ale co dalej ? Jak wyświetlić drugą tablicę z zamienionymi elementami max i min? Samo skopiowanie nic nie daje bo wyświetli się tak samo jak ta pierwsza, może trzeba użyć wskaźników ?
Kopiujesz tablicę i potem w niej zamieniasz te elementy.
Ewentualnie wyświetlasz pierwszą tablicę, zamieniasz w niej elementy i znowu ją wyświetlasz.
Karolaq napisał(a)
Kopiujesz tablicę i potem w niej zamieniasz te elementy.
Ewentualnie wyświetlasz pierwszą tablicę, zamieniasz w niej elementy i znowu ją wyświetlasz.
No tak, ale to by było zbyt proste, chodzi o to ,że program ma wskazać z tablicy element najwiekszy i najmniejszy a następnie ma wyświetlić jeszcze raz tablicę ale z zamienionymi miejscami elementu max z min.Tablica może być zadeklarowana wartościami przez użytkownika, jak również można napisać tablicę statyczną w kodzie.W sumie można użyć funkcji swap ale tylko jak się zna pozycje elementu max i min.
Może ktoś napisze kod bo opisywanie tego co mam zrobić nic nie daje. Będę wdzięczny.
Widząc w kodzie element max i min jak najbardziej mogę je wskazać sam i wyświetlić cout-em no ale to nie o to chodzi :)
jenssonmedia napisał(a)
miejscami elementu max z min.Tablica może być zadeklarowana wartościami przez użytkownika, jak również można napisać tablicę statyczną w kodzie.W sumie można użyć funkcji swap ale tylko jak się zna pozycje elementu max i min.
No to zamiast elementów do min i max zapisuj index tablicy czyli aktualne i. Wyświetlał i porównywał będziesz przez T[min] i T[max]. Swoją drogą czemu w deklaracji T masz const? w takim przypadku nie można nic w niej zmienić, a co za tym idzie bez 2 tablicy (bez const) się nie obejdzie.
edit: kod zrobiłem od ręki, tyle że mam dziwne wrażenie że to do szkoły więc lepiej będzie jak sam zrobisz bo tylko wtedy będziesz mógł się wytłumaczyć jego działania
edit2: drugiej tablicy przydała by się inna nazwa, bo próbujesz zrobić 2 tablice o nazwie T. a powinno być np int Z[8];.