• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie dwuwymiarowej tablicy, których ćwiartki to są liczby zadeklarowane wcześniej

Object Storage Arubacloud
0 głosów
320 wizyt
pytanie zadane 12 stycznia 2018 w C i C++ przez must Bywalec (2,980 p.)

Cześć, potrzebuje napisać program, w którym na samym początku wczytuje 5 liczb:

n (musi być parzysta) - jest to rozmiar tablicy

qwer - dowolne liczby

Dajmy na to, że n wynosi 4 czyli tablica wygląda tak:

00 01 02 03 
10 11 12 13
20 21 22 23
30 31 32 33

Potrzebuje teraz tak zrobić, by każda liczba to była osobna ćwiartka czyli założmy, że

q = 1, w = 2, e = 3, r = 4

Teraz pierwsza ćwiartki ma przyjąć wartość q, druga w etc.

Czyli będzie to wyglądać tak: 

2 2 1 1 
2 2 1 1 
3 3 4 4 
3 3 4 4

Wiecie może jak coś takiego zrealizować?

1 odpowiedź

+1 głos
odpowiedź 13 stycznia 2018 przez Tomasz90 Nałogowiec (25,140 p.)
wybrane 13 stycznia 2018 przez must
 
Najlepsza
Iterujesz po całej tablicy i dla każdego elementu sprawdzasz do jakiej ćwiartki należy patrząc na indeksy elementu np. jeśli n = 10, to jeżeli i < n/2 oraz j < n/2 to wiesz, że to druga ćwiartka i wtedy ustalasz taką wartość liczbową jaką powinna mieć ta ćwiartka.
komentarz 13 stycznia 2018 przez must Bywalec (2,980 p.)
Rozumiem to, że lece po całej tablicy i w sumie tylko tyle... Nie mam pojęcia jak to zrealizować.
1
komentarz 13 stycznia 2018 przez Tomasz90 Nałogowiec (25,140 p.)

Wewnątrz tych dwóch pętli, masz konstrukcję:

if(i < n/2 && j < n/2) // 2 ćwiartka 
   a[i][j] = w;
else if(warunek1)
   a[i][j] = q;
else if(warunek2)
   a[i][j] = e;
else
   a[i][j] = r;

warunek1 i warunek2 musisz sobie sam napisać co nie jest trudne. Wystarczy tylko popatrzeć jak indeksy elementów tej tablicy zmieniają się w poszczególnych ćwiartkach.

  

 

komentarz 13 stycznia 2018 przez must Bywalec (2,980 p.)
dziekuje, zaraz na to zerkne.
komentarz 13 stycznia 2018 przez must Bywalec (2,980 p.)

@Tomasz90, Czyli dla 1 ćwiartki byłoby: 

(i>n/2 && j>n/2 )

?

 

A jak to zrobić dla 3 ćwiartki?

komentarz 13 stycznia 2018 przez must Bywalec (2,980 p.)
{
        for(j=0; j<n; j++)
        {
            if((i < n/2 && j < n/2)) // 2 ćwiartka
                tab[i][j] = w;
            else if(i>n/2 && j>n/2)
                tab[i][j] = q;
            else if(j>i/2)
                tab[i][j] = e;
            else
                tab[i][j] = r;
        }
    }

Dla 4x4 qwe działa, r już nie. Dla 6x6 zaczyna się rozjeżdzać.

1
komentarz 13 stycznia 2018 przez Tomasz90 Nałogowiec (25,140 p.)
Pierwsza ćwiartka to elementy które są jakby bliżej prawego górnego rogu macierzy a to co napisałeś to prawy dolny czyli czwarta. Dodatkowo trzeba uwzględnić taką sytuację, gdy lewa i prawa strona będzie równa np. dla i =3 a u Ciebie tego nie ma. Ten warunek j > i/2 też jest zły
komentarz 13 stycznia 2018 przez must Bywalec (2,980 p.)

Dobra, metodą prób i błędów doszedłem do tego: 

for(j=0; j<n; j++)
        {
            if((i < n/2 && j < n/2)) // 2 ćwiartka
                tab[i][j] = w;
            else if(i>=n/2 && j>=n/2) // 4 cwiartka
                tab[i][j] = r;
            else if(i<n/2 && j>=n/2) // 1 cwiartka
                tab[i][j] = q;
            else  // 3 cwiartka cwiartka
                tab[i][j] = e;
        }

 

Podobne pytania

0 głosów
1 odpowiedź 542 wizyt
pytanie zadane 22 marca 2021 w C i C++ przez Rainbow99 Początkujący (430 p.)
0 głosów
0 odpowiedzi 154 wizyt
pytanie zadane 9 maja 2020 w C i C++ przez pati2234 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 224 wizyt
pytanie zadane 28 kwietnia 2020 w C# przez kubekszklany Gaduła (3,190 p.)

92,568 zapytań

141,422 odpowiedzi

319,642 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...