Низ се дефинише као колекција сличних типова података ускладиштених на суседним меморијским локацијама. Низови су изведени тип података у програмском језику Ц који може да складишти примитивни тип података као што су инт, цхар, доубле, флоат, итд. Такође има могућност складиштења колекције изведених типова података, као што су показивачи, структура, итд. Низ је најједноставнија структура података у којој се сваком елементу података може насумично приступити коришћењем његовог индексног броја.
Ц низ је користан ако морате да складиштите сличне елементе. На пример, ако желимо да ускладиштимо оцене ученика у 6 предмета, онда не морамо да дефинишемо различите варијабле за оцене из различитог предмета. Уместо тога, можемо дефинисати низ који може чувати ознаке у сваком субјекту на суседним меморијским локацијама.
Коришћењем низа можемо лако приступити елементима. За приступ елементима низа потребно је само неколико линија кода.
Својства низа
Низ садржи следећа својства.
- Сваки елемент низа је истог типа података и носи исту величину, тј. инт = 4 бајта.
- Елементи низа се чувају на суседним меморијским локацијама где се први елемент чува на најмањој меморијској локацији.
- Елементима низа се може приступити насумично јер можемо израчунати адресу сваког елемента низа са датом базном адресом и величином елемента података.
Предност Ц низа
1) Оптимизација кода : Мање кода за приступ подацима.
2) Лакоћа преласка : Коришћењем фор петље, можемо лако да преузмемо елементе низа.
3) Једноставност сортирања : Да бисмо сортирали елементе низа, потребно нам је само неколико линија кода.
4) Насумични приступ : Можемо приступити било ком елементу насумично користећи низ.
Недостатак Ц низа
1) Фиксна величина : Без обзира на величину коју дефинишемо у тренутку декларације низа, не можемо прекорачити ограничење. Дакле, не расте динамички као ЛинкедЛист, што ћемо касније научити.
Декларација Ц низа
Можемо декларисати низ у језику ц на следећи начин.
data_type array_name[array_size];
Сада, да видимо пример за декларисање низа.
int marks[5];
Овде, инт је тип података , ознаке су име_низа , а 5 је арраи_сизе .
Иницијализација Ц низа
Најједноставнији начин да се иницијализује низ је коришћење индекса сваког елемента. Можемо да иницијализујемо сваки елемент низа коришћењем индекса. Размотрите следећи пример.
поређење лава и тигра
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
Пример Ц низа
#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'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'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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){></pre></5;i++){>
Ц низ: декларација са иницијализацијом
Можемо да иницијализујемо ц низ у време декларације. Хајде да видимо код.
int marks[5]={20,30,40,50,60};
У таквом случају постоји нема потребе за дефинисањем величине . Дакле, може се написати и као следећи код.
int marks[]={20,30,40,50,60};
Хајде да видимо Ц програм за декларисање и иницијализацију низа у Ц.
#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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;></pre></5;i++){>
Пример Ц низа: Сортирање низа
У следећем програму користимо метод сортирања мехурића да сортирамо низ у растућем редоследу.
#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('Enter the size of the array?'); scanf('%d',&n); printf('Enter the elements of the array?'); 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 && arr[i]!=largest) { sec_largest=arr[i]; } } printf('largest = %d, second largest = %d',largest,sec_largest); } </n;></pre> <hr></10;>
10;>5;i++){>5;i++){>