logo

Tablica C

Tablicę definiuje się jako zbiór elementów danych podobnego typu przechowywanych w sąsiadujących lokalizacjach pamięci. Tablice to pochodny typ danych w języku programowania C, który może przechowywać prymitywne typy danych, takie jak int, char, double, float itp. Posiada również możliwość przechowywania kolekcji pochodnych typów danych, takich jak wskaźniki, struktura, itp. Tablica jest najprostszą strukturą danych, w której można uzyskać losowy dostęp do każdego elementu danych za pomocą jego numeru indeksu.

Tablica C jest korzystna, jeśli musisz przechowywać podobne elementy. Na przykład, jeśli chcemy przechowywać oceny ucznia z 6 przedmiotów, nie musimy definiować różnych zmiennych dla ocen z różnych przedmiotów. Zamiast tego możemy zdefiniować tablicę, która może przechowywać oceny każdego przedmiotu w sąsiadujących lokalizacjach pamięci.

Korzystając z tablicy, możemy łatwo uzyskać dostęp do elementów. Aby uzyskać dostęp do elementów tablicy, potrzeba tylko kilku linii kodu.

Właściwości tablicy

Tablica zawiera następujące właściwości.

  • Każdy element tablicy ma ten sam typ danych i ten sam rozmiar, tj. int = 4 bajty.
  • Elementy tablicy są przechowywane w sąsiadujących lokalizacjach pamięci, przy czym pierwszy element jest przechowywany w najmniejszej lokalizacji pamięci.
  • Dostęp do elementów tablicy można uzyskać losowo, ponieważ możemy obliczyć adres każdego elementu tablicy na podstawie podanego adresu bazowego i rozmiaru elementu danych.

Zaleta tablicy C

1) Optymalizacja kodu : Mniej kodu dostępu do danych.

2) Łatwość poruszania się : Używając pętli for, możemy łatwo odzyskać elementy tablicy.

3) Łatwość sortowania : Aby posortować elementy tablicy, potrzebujemy tylko kilku linijek kodu.

4) Losowy dostęp : Możemy uzyskać dostęp do dowolnego elementu losowo za pomocą tablicy.

Wada tablicy C

1) Stały rozmiar : Niezależnie od rozmiaru, który zdefiniujemy w momencie deklaracji tablicy, nie możemy przekroczyć limitu. Zatem nie zwiększa rozmiaru dynamicznie jak LinkedList, o czym dowiemy się później.

Deklaracja tablicy C

Tablicę w języku c możemy zadeklarować w następujący sposób.

 data_type array_name[array_size]; 

Zobaczmy teraz przykład deklarowania tablicy.

 int marks[5]; 

Tutaj int jest typ danych , znaki są nazwa_tablicy , a 5 to rozmiar_tablicy .

Inicjalizacja tablicy C

Najprostszym sposobem zainicjowania tablicy jest użycie indeksu każdego elementu. Możemy zainicjować każdy element tablicy za pomocą indeksu. Rozważ następujący przykład.

przykłady NFA
 marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; 
inicjalizacja tablicy w języku c

Przykład tablicy C

 #include int main(){ int i=0; int marks[5];//declaration of array marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75; //traversal of array for(i=0;i<5;i++){ printf('%d 
',marks[i]); } end of for loop return 0; < pre> <p> <strong>Output</strong> </p> <pre> 80 60 70 85 75 </pre> <h2>C Array: Declaration with Initialization</h2> <p>We can initialize the c array at the time of declaration. Let&apos;s see the code.</p> <pre> int marks[5]={20,30,40,50,60}; </pre> <p>In such case, there is <strong>no requirement to define the size</strong> . So it may also be written as the following code.</p> <pre> int marks[]={20,30,40,50,60}; </pre> <p>Let&apos;s see the C program to declare and initialize the array in C.</p> <pre> #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf('%d 
',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf('printing sorted element list ...
'); for(i="0;" i<10; printf('%d
',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf('%d',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>

Tablica C: deklaracja z inicjalizacją

Możemy zainicjować tablicę c w momencie deklaracji. Zobaczmy kod.

 int marks[5]={20,30,40,50,60}; 

W takim przypadku istnieje brak wymogu określenia rozmiaru . Można go więc również zapisać jako następujący kod.

 int marks[]={20,30,40,50,60}; 

Zobaczmy program w C, który zadeklaruje i zainicjuje tablicę w C.

 #include int main(){ int i=0; int marks[5]={20,30,40,50,60};//declaration and initialization of array //traversal of array for(i=0;i<5;i++){ printf(\'%d 
\',marks[i]); } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 20 30 40 50 60 </pre> <h2>C Array Example: Sorting an array</h2> <p>In the following program, we are using bubble sort method to sort the array in ascending order.</p> <pre> #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ...
\'); for(i="0;" i<10; printf(\'%d
\',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>

Przykład tablicy C: Sortowanie tablicy

W poniższym programie używamy metody sortowania bąbelkowego do sortowania tablicy w porządku rosnącym.

 #include void main () { int i, j,temp; int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23}; for(i = 0; i<10; i++) { for(j="i+1;" j a[i]) temp="a[i];" a[i]="a[j];" a[j]="temp;" } printf(\'printing sorted element list ...
\'); for(i="0;" i<10; printf(\'%d
\',a[i]); < pre> <h2>Program to print the largest and second largest element of the array.</h2> <pre> #include void main () { int arr[100],i,n,largest,sec_largest; printf(&apos;Enter the size of the array?&apos;); scanf(&apos;%d&apos;,&amp;n); printf(&apos;Enter the elements of the array?&apos;); for(i = 0; i<n; i++) { scanf(\'%d\',&arr[i]); } largest="arr[0];" sec_largest="arr[1];" for(i="0;ilargest)" else if (arr[i]>sec_largest &amp;&amp; arr[i]!=largest) { sec_largest=arr[i]; } } printf(&apos;largest = %d, second largest = %d&apos;,largest,sec_largest); } </n;></pre> <hr></10;>