Arrays in C
Array vaneko khaas eutai variable ma dherai value haru store garney euta data type jasto ho. Array use kina garincha vanney kura euta example ley clear huncha:
Jastai maanam ki malai euta school ko marksheet euta program lekhera tayarr paarna paryo. Aba School ma ta hajarau students haru huna sakchan. Maile aba stu1, stu2, stu3 vanera variable banaudai gaye vaney ta saddhye laagcha ra hajarau laai ta? Laagdaina ni? Tyo case ma chai hamle array use garcham.
Array use garney euta simple program heram suru ma:
    
    #include <stdio.h>

      int main() {
          int marks[5];
      
          for (int i=0; i<=4; i++) {
              printf("Enter marks: ");
              scanf("%d", &marks[i]);
          }
      
          for (int i=0; i<=4; i++) {
              printf("%d \n", marks[i]);
          }
      
          return 0;
      }
  
Yo Program ma naya kura haru dherai cha so bistarai bujham aba
Array Declaration
Aru variable haru jastai hamle array laai ni suru ma declare garna parcha. Yo program ma yesari declare gariyeko cha array laai:
    
    int marks[5];
  
int vaneko ta data type vaihaalyo matlab ki yo array ley integer haru laai store garna sakcha. Ani marks chai hamro array ko naam vayo ani [5] chai array ko length vayo. [] ley chai compiler laai maile array declare garna laako chu vanera vancha ani 5 ley chai 5 chai mero array ko length ho hai vanera vancha.
Data Access in Array
Hamle euta array ko each element laai access garna milcha. Ahile maile declare gareko array ma value haru yesari store vayera baseko huncha:
marks[0] marks[1] marks[2] marks[3] marks[4]
(Random Value) (Random Value) (Random Value) (Random Value) (Random Value)
Maile ek choti vaneko thye hola garbage value ko baarema. C ma hamle jaile variable declare garcham ni declare garney bittikai euta random value aayera basirako huncha tyo variable ma. Yo array ma ni ahile tyestai vaako ho. Tyo chodam ahile laai. Hamle yo table baata dekhna sakcham ki value haru 0 dekhi suru vayera store vayeko cha. Aba malai yo array ko first value access garna mann laagyo vaney maile marks[0] use garchu. Ani jastai malai 4th value access garna mann laagyo vaney marks[3] use garchu. Aba maile marks[0] laai print pani garna sakchu ani tyesma value raakhna ni sakchu:
Print garna laai:
    
    printf("%d", marks[0]);
  
Value Store Garna laai:
    
    marks[0] = 100;
  
Ani User Input lina laai:
    
    scanf("%d", &marks[0]);
  
Yo sabai garna milcha!
Data Entry in Array
Yo section ley hamro data entry laai handle gareko cha:
    
    for (int i=0; i<=4; i++) {
      printf("Enter marks: ");
      scanf("%d", &marks[i]);
    }
  
Aba hamle yaha euta for loop setup gareko cham. Array ko [] vitra huney vaneko ta 0 dekhi 4 ho ni ta tei vayera yaha loop kaam laagyo. Ani 0 dekhi 4 samma huney vaako vayera nai hamle initialize garda i ko value laai 0 gareko cham ani last ko value laai 4 raakheko cham (5 raakhney ho vaney chai < 5 raakhda huncha). Ani tala scanf ma marks[i] vayesi suru ma 0 ma data entry huney vayo, tyespachi 1 ma, tyespachi 2 ma ani tyestai vairakhcha.
Aba maanam ki maile input chai 100, 200, 300, 400 ra 500 diye vaney hamro array yesto huncha:
marks[0] marks[1] marks[2] marks[3] marks[4]
100 200 300 400 500
Data Reading in Array
Yo section ley hamro data reading laai handle gareko cha:

    for (int i=0; i<=4; i++) {
      printf("%d \n", marks[i]);
    }
  
Yo ta tapai ley yetikai nai bujhnu vayo hola. for loop 0 dekhi 4 samma setup gariyo ani tii sabai laai print gardiyo marks[i] use garera.
Aba aginai jastai input vayeko ho vaney chai hamro output yesto aauncha:

    100 
    200
    300
    400
    500
  
Ani yo number haru vaneko chai:

    100 -> marks[0]
    200 -> marks[1]
    300 -> marks[2]
    400 -> marks[3]
    500 -> marks[4]
  
Aba alikati example haru garam ani tyespachi array ko barema extra kura haru padhamla:
Q. Twenty-five numbers are entered from keyboard into an array. The number to be searched is entered through the keyboard by the user. Write a program to find if the number to be searched is present in the array and if it is present, display the number of times it appears in the array. (Let Us C - Yashavant Kanetkar)
Pahila program lekhchu ani bujhaunchu:

    #include <stdio.h>

    int main() {
        int numbers[25], search_num, count=0;
        
        for (int i=0; i<=24; i++) {
            printf("Enter a number: ");
            scanf("%d", &numbers[i]);
        }
        
        printf("\n Enter the number to be searched: ");
        scanf("%d", &search_num);
        
        for (int i=0; i<=24; i++) {
            if (numbers[i] == search_num) {
                count++;
            }
        }
        
        printf("The number of times %d appeared in the array is: %d", search_num, count);
    
        return 0;
    }
  
Aba yo program ma ke vairako cha ta? Suru ma ta maile euta numbers vanney array laai declare garey ani question anusaar 25 tyesko range banaye. Ani aarko euta variable banaye jasma chai tyo search garney number huncha, ani kati ota number aayo ta vanera count garna count vanney variable banaye. Ani kina vaney count counter variable ho suru ma 0 initialize garna paryo (Garbage value na aaos vanera).
Suru ko for loop ta tyesto gaaro vayena aginai nai bujheko ho just number haru input gareko ho hamro array ma.
Aba tyo loop sakkey pachi chai kun number search garney vanera user laai sodheko chu.
Second for loop ma chai heram aba. Pahila ta sabai array ko element haru laai access garna laai for loop intialize gariyo 0 dekhi 24 samma. Ani aba harek element ma check garney tyo search number sanga equal cha ki chaina vanera, ani equal cha vaney chai counter laai badhauney, chaina vaney ta kei garnai parena.
Q. Write a program to find the greatest and smallest number in an array.
    #include <stdio.h>

    int main() {
        int numbers[5], max, min;
    
        for (int i=0; i<=4; i++) {
            printf("Enter numbers: ");
            scanf("%d", &numbers[i]);
        }
    
        max = numbers[0];
        min = numbers[0];
    
        for (int i=1; i<=4; i++) {
            if (numbers[i] > max) {
                max = numbers[i];
            }
    
            if (numbers[i] < min) {
                min = numbers[i];
            }
    
        }
    
        printf("\n The Greatest Number is: %d \n The Smallest Number is: %d", max, min);
    
        return 0;
    }
  
Pahila ta maile numbers vanney array banaye, ani greatest ra smallest number store garna laai max ra min variable banaye. Suru ko for loop samma ta simple nai vayo.
Tyespachi maile max ra min laai numbers ko suru ko value diyeko chu. Aba maile tyo suru ko value laai aarko second value sanga compare garchu for loop use garera. Aba max ko case ma chai second value chai first value vanda thulo cha vaney max laai maile tyo thulo value matlab tei numbers[i] ley replace gardinchu, ani aarko step ma ni tyestai huncha second value laai third value ley compare garcha ani thulo cha vaney replace gardincha, ani tyesto vairakhyo vaney last ma gayera max ma greatest number store vayera bascha.
Smallest Number ni tyestai nai vayo. Suru ko value laai second ko value sanga compare garda second ko value smaller cha vaney smaller value laai min ma haaldiney, ani tei loop vairakhyo vaney last ma gayera min ma smallest value bascha.
More on Arrays
Array ko barema alikati ajhai features ra downfall ko baarema bujham.
Array Initialization
Aginai hamle array haru declare garda kheri user input maagera nai value haru raakheko thyem. Tara hamle aafai value raakhna ni milcha. Tyo garna laai:

    int num[6] = {2, 4, 6, 8, 10, 12}
  
Aba hamle for loop lagayera sabai array ko value read garem vaney tei value haru aauncha.
Array laai yesari declare garda ni huncha:

    int num[] = {1, 5, 7, 10, 6, 8}
  
Yesto chai hamle aafai value haru rakhney bela matra milcha. C ley chai automatically array ko length laai set gardincha.
Array Elements in Memory
Yo chai pachi pointers ma kaam laagcha. Array ko Memory Location vaneko saddhai ek aarko ko sangai huncha. Jastai maanam ki euta array cha num[] = {1, 2, 3, 4, 5}, ani maanam ki 1 ko memory location 100 ho.
Element num[0] = 1 num[1] = 2 num[2] = 3 num[3] = 4 num[4] = 5
Memory Location 100 101 102 103 104
Yo kura tyesto important ta chaina tei ni dimag ma raakhirako ramro ahile laai.
Multi Dimensional Array
Multi Dimensional Array vaneko euta array ko collection vanera bujhna milcha. Jastai ki Two-Dimensional Array vaneko One Dimensional Array ko Collection ho ani Three-Dimensional Array vaneko Two-Dimensional Array ko Collection ho. Tara hamle ahile Two-Dimensional Array ko barema matra bujhcham alikati.
Two-Dimensional Array laai euta Matrix jastari ni herna milcha. La jastai euta matrix ligam ani tyeslai C Code ma raakham hai ta:
Identity Matrix:
1 0
0 1
Aba hamle yo matrix ko element haru laai label ni garna sakcham:
1 (0,0) 0 (0, 1)
0 (1, 0) 1 (1, 1)
(Maile yesma 0,0 dekhi suru gareko tei vayera number haru yesto vaako)
Initialization of a Two-Dimensional Array
Aba C ma yo array kasto huncha heram:

    #include <stdio.h>

    int main() {

    int numbers[2][2] = {
              {1, 0},
              {0, 1}
        };

    return 0;
    }
  
Tara yo matrai garna milcha vanney ni haina. Yo pani milcha:

    int numbers[2][2] = {1, 0, 0, 1}
  
Tara yesma hamle read garna alli gaaro huncha.
Euta kura chai 2D Array ma ke cha vaney, second dimension (column) chai declare garnai parcha, tara first dimension (row) chai optional ho. Jastai aba:

    int arr[2][3] = {1, 2, 3, 4, 5, 6};
    int arr[][3] = {1, 2, 3, 4, 5, 6};
  
Inaharu chai majjale milcha. Tara yo chai:

    int arr[2][] = {1, 2, 3, 4, 5, 6};
    int arr[][] = {1, 2, 3, 4, 5, 6};
  
Yesto lekhna mildaina.
Accessing Data in a 2D Array
Maile aginai banako table jastari nai access garna milcha hamro 2D Array laai.
1 (0,0) 0 (0, 1)
0 (1, 0) 1 (1, 1)
Maanam ki yo array numbers vanney array ma store vaacha. Tyeso vaye maile numbers[0][0] haaley vaney 1 aauncha, numbers[0][1] haaley vaney 0 aauncha ani tyestai tyestai.
Aba sabai elements display garna paryo vaney hamle for loop yesari use garna parcha:
    #include <stdio.h>

    int main() {
        int numbers[2][2] = {
            {1, 0},
            {0, 1}
        };

        for (int i = 0; i<=1; i++) {
            for (int j = 0; j<=1; j++) {
                printf("%d \n", numbers[i][j]);
            }
        }

        return 0;

    }
  
Aba yo chai nested for loop ko euta use case vayo. Maile pahila ni vaneko hola nested loop kasari kaam garcha vanera. Aba yesma chai suru ma pahilo for loop ma enter vayo program ani tyo bela chai i = 0 vayo. Tyespachi second for loop ma gayo jasma feri j = 0 vayo. Tei vayera suru ma numbers[0][0] = 1 print huney vayo. Tyespachi aba tyo second for loop nai execute huney vayo kina vaney second for loop ko condition false vaako chaina. Aba i ko value ta change vaako chaina tei vayera i = 0 ani j = 1 huney vayo. Tei vayera numbers[0][1] = 0 print huney vayo. Tyespachi j ko loop sakkyo ani feri i ko loop ma jharyo jaha chai i ko value aba 1 vayo so i = 1. Ani aba feri j ko loop ma chiryo ani j ko value feri suru baata suru huncha tei vayera j = 0 huney vayo. Tei vayera numbers[1][0] = 0 print huney vayo. Ani feri j ko value badney vayo tei vayera i = 1 ani j = 1 huney vayo ani numbers[1][1] = 1 print huney vayo.
That's it. Hamle aba 2D-Array ma input lina ni yestari nai garney ho:
    
    for (int i = 0; i<=1; i++) {
    for(int j = 0; j<=1; j++) {
        scanf("%d", &numbers[i][j]);
    }
  }
  
Aba 2D-Array ko euta question garam.
Q. Write a program to add two 3x3 Matrices
    
    #include <stdio.h>

      int main() {
        int matrix_1[3][3], matrix_2[3][3], added_matrix[3][3];
    
        //Input the first matrix
        printf("The First Matrix: ");
        for (int i=0; i<=2; i++) {
            for (int j=0; j<=2; j++) {
                printf("\nEnter the element of (%d, %d): ", i, j);
                scanf("%d", &matrix_1[i][j]);
            }
        }
    
        //Input the second matrix
        printf("\n The Second Matrix:");
        for (int i=0; i<=2; i++) {
            for(int j=0; j<=2; j++) {
                printf("\nEnter the element of (%d, %d):", i, j);
                scanf("%d", &matrix_2[i][j]);
            }
        }
    
        //Calculate Result
        for (int i=0; i<=2; i++) {
            for (int j=0; j<=2; j++) {
                added_matrix[i][j] = matrix_1[i][j] + matrix_2[i][j];
            }
        }
    
        //Display the Result
        printf("The Added Matrix is: \n");
        for (int i=0; i<=2; i++) {
            for (int j=0; j<=2; j++) {
                printf("%d | ", added_matrix[i][j]);
            }
            printf("\n");
        }
    
        return 0;
    
      }
  
Aba yo program dekhda laamo hola tara maile sakey samma user friendly banauna khojeko vayera ho. Yesma chai aba suru ma duita matrix array haru laai input ligyo, ani sajilo hoss vanera maile index number ni lekhdiyeko chu tyehi printf ma (Program copy garera run garnu vayo vaney thaha paaunu huncha). Ani aba calculate garna ni thulo kura vayena just euta for loop ma duitai index ko value haru laai jodera third matrix ko tei index ma gayera raakhdiyesi last ma tyo third matrix laai display garesi hamro answer aayo!