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

tablica dynamiczna dwuwymiarowa

Object Storage Arubacloud
0 głosów
206 wizyt
pytanie zadane 19 kwietnia 2020 w C i C++ przez julsonem Nowicjusz (120 p.)
Witam, mam do zrobienia następujące zadanie w języku C:
Zaprojektuj tablicę dynamiczną dwuwymiarową do przechowywania liczb typu unsigned int. W tablicy tej , w ośmiu odrębnych wierszach, winny być przechowywane jednowymiarowe tablice z liczbami spełniającymi następujące warunki:- wiersz 0 – tablica z liczbami, których binarna reprezentacja zawiera na najstarszych pozycjach bity 000, - wiersz 1 - tablica z liczbami, których binarna reprezentacja zawiera na najstarszych pozycjach bity 001, - wiersz 2 - tablica z liczbami, których binarna reprezentacja zawiera na najstarszych pozycjach bity 010, itd. Wczytuj z wejścia kolejne liczby unsigned int , aż do wystąpienia liczby 0 (bez jej dalszego uwzględniania). Przyjmij, że jest ich nie więcej niż 100. Umieszczaj te liczby w zaprojektowanej tablicy. Po zakończeniu wypełniania tablicy, przeprowadź jej zmniejszenie, tzn. zarezerwuj dla każdego wiersza tablicy dwuwymiarowej tylko tyle miejsca, ile go istotnie potrzeba. Resztę zarezerwowanej pamięci zwolnij.
Nie wiem z której strony to zadanie ugryźć, głównie potrzebowałabym pomocy z tym, jak umieścić liczby na odpowiednich pozycjach w tablicy.
komentarz 19 kwietnia 2020 przez j23 Mędrzec (194,920 p.)
Nie wiesz, jak stworzyć tablicę dynamiczną, czy jak?

1 odpowiedź

0 głosów
odpowiedź 19 kwietnia 2020 przez Programeł Gaduła (3,500 p.)
edycja 19 kwietnia 2020 przez Programeł

Najpierw postarałbym się stworzyć funkcje, która będzie sprawdzać czy dana liczba nadaje się do danego wiersza. Najprawdopodobniej funkcje tą złożyłbym z innych pomniejszych funkcji.

Możesz zrobić na przykład tak że liczby w postaci binarnej zapisywałbyś do tablicy char i wtedy sprawdzał najstarsze bity. 

Zazwyczaj int zajmuje 4 bajty, czyli tablica char powinna mieć wielkość 32. Jeśli chcesz aby program był bardziej zaawansowany i dokładny to możesz sprawdzić wielkość int za pomocą  operatora sizeof i na podstawie liczby podanej przez ten operator i mnożąc ją przez 8 stwórz tablice o danej wielkości. 

tu masz linka w jaki sposób możesz otrzymać wartość zmiennej unsigned int w postaci binarnej:
https://www.geeksforgeeks.org/binary-representation-of-a-given-number/

Powodzenia :)

komentarz 19 kwietnia 2020 przez Programeł Gaduła (3,500 p.)
Wprowadziłem małą ale WAŻNĄ poprawe

4 bajty to 32 bity
4 x 8 = 32

a nie 16
komentarz 19 kwietnia 2020 przez j23 Mędrzec (194,920 p.)

@Programeł,  dajże spokój z tą postacią binarną. Zwykłe przesunięcie bitowe wystarczy.

Podobne pytania

0 głosów
0 odpowiedzi 125 wizyt
pytanie zadane 28 stycznia 2022 w C i C++ przez danielch Użytkownik (660 p.)
0 głosów
1 odpowiedź 548 wizyt
+1 głos
2 odpowiedzi 1,089 wizyt
pytanie zadane 15 kwietnia 2018 w C i C++ przez Stasq Nowicjusz (150 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...