C Programming में Arrays क्या हैं? Beginners से Advanced तक पूरी जानकारी | Examples और Practice Programs के साथ |

जब एक ही जगह पर बहुत सारा Data आसानी से संभालना हो, तो C प्रोग्रामिंग में Arrays सबसे उपयोगी तकनीकों में से एक हैं। Arrays की मदद से छात्रों के Marks, Products की कीमत, User Data और Transactions जैसी कई Values को व्यवस्थित तरीके से Store, Search और Process किया जा सकता है। इससे कोड छोटा, सही ढंग से और काम करने में आसान बनता है। जिससे हर काम आसानी से किया जा सकता है।

🧑‍💻 Chapter 1: C Programming की Basic जानकारी
📜 Chapter 2: C Language का History और Development
⚙️ Chapter 3: C Compiler Install करना
💻 Chapter 4: अपना पहला C Program लिखना
🏗️ Chapter 5: C Program की Structure
📦 Chapter 6: Variables और Data Types
🔢 Chapter 7: C में Operators
⌨️ Chapter 8: Input और Output Functions
🔀 Chapter 9: Decision Making और Conditional Statements
🔄 Chapter 10: Decision Making और Loops
📊 Chapter 11: Arrays – Current Chapter
🔤 Chapter 12: Strings
🛠️ Chapter 13: Functions
👉 Chapter 14: Pointers
🏛️ Chapter 15: Structures और Unions
📁 Chapter 16: File Handling

Array C Programming का एक बहुत जरूरी topic है। इसकी मदद से हम एक ही तरह की कई values को एक जगह पर आसानी से store और manage कर सकते हैं।

जैसे Student Marks, Product Prices, Employee Salaries, Customer Records, Sales Data और Scores आदि को Array में आसानी से store किया जा सकता है।

Arrays को समझना इसलिए भी जरूरी है क्योंकि आगे चलकर Strings, Matrices, Searching, Sorting, Data Structures और Algorithms जैसे important topics को समझने में इसका बहुत फायदा मिलता है।

Array एक ऐसा तरीका है जिसमें एक ही Data Type की कई values को एक ही नाम के अंदर store किया जाता है।

मान लीजिए आपको 5 students के marks store करने हैं।

Array के बिना आपको अलग-अलग Variables बनाने पड़ेंगे:

int mark1 = 85;
int mark2 = 78;
int mark3 = 92;
int mark4 = 88;
int mark5 = 76;

यह छोटे data के लिए ठीक है, लेकिन अगर 100 या 1000 values store करनी हों, तो बहुत सारे Variables बनाने पड़ेंगे।

Array की मदद से यही काम आसानी से किया जा सकता है:

int marks[5] = {85, 78, 92, 88, 76};

अब सभी 5 marks marks नाम के एक ही Array में store हैं।

आसान तरीके से समझें

Array को आप एक ऐसी अलमारी की तरह समझ सकते हैं जिसमें कई अलग-अलग खाने होते हैं। हर खाने में एक value रखी जा सकती है और हर खाने का अपना एक Index Number होता है।

उदाहरण:

int numbers[5] = {10, 20, 30, 40, 50};

यहाँ:

  • numbers → Array का नाम
  • 5 → Array में कुल 5 elements
  • 10, 20, 30, 40, 50 → Array की values
  • 0, 1, 2, 3, 4 → इनके Index Numbers

Array की मुख्य बातें

  • Array में एक ही Data Type की values store होती हैं।
  • सभी values को एक ही नाम से manage किया जा सकता है।
  • हर element को उसके Index से access किया जाता है।
  • C में Array का Index 0 से शुरू होता है।
  • Array के elements memory में एक-दूसरे के पास store होते हैं।

मान लीजिए किसी school में 1,000 students के marks store करने हैं।

अगर हर student के लिए अलग Variable बनाएँ:

int mark1;
int mark2;
int mark3;
...
int mark1000;

तो Program बहुत बड़ा और manage करना मुश्किल हो जाएगा।

Array की मदद से:

int marks[1000];

एक ही Array में 1,000 marks store किए जा सकते हैं।

इससे Program छोटा, साफ और manage करना आसान हो जाता है।

आप Arrays का उपयोग करके:

  • एक ही नाम से कई values store कर सकते हैं।
  • Code को छोटा और व्यवस्थित रख सकते हैं।
  • बहुत सारे data को आसानी से manage कर सकते हैं।
  • Loop की मदद से सभी values पर आसानी से काम कर सकते हैं।
  • Data को Search और Sort करना आसान होता है।
  • Tables और Matrices बनाई जा सकती हैं।
  • बड़े Programs को समझना और manage करना आसान होता है।
  • आगे के Advanced Programming concepts को समझने में मदद मिलती है।

Arrays का इस्तेमाल केवल Programming examples में नहीं होता। Real-life applications में भी इनका बहुत उपयोग होता है।

E-Commerce

E-Commerce applications में Arrays की मदद से Product Prices, Product IDs, Stock Quantity, Ratings आदि data को manage किया जा सकता है।

Banking

Banking applications में Account Balances, Transaction Records और दूसरे numerical data को manage करने में Arrays उपयोगी हो सकते हैं।

Games

Games में Player Scores, Levels, Positions और दूसरे game-related data को store करने के लिए Arrays का उपयोग किया जाता है।

Healthcare

Healthcare applications में Test Results, Measurements और दूसरे numerical data को store और process किया जा सकता है।

Data Analysis

बड़ी मात्रा में numerical data को store और process करने के लिए Arrays बहुत उपयोगी होते हैं।

आसान भाषा में:
Array की मदद से बहुत सारे related data को एक जगह Store, Process, Search और Sort करना आसान हो जाता है।

मान लीजिए हमने यह Array बनाया:

int marks[5] = {87, 78, 91, 80, 76};

इसमें कुल 5 elements हैं।

हर element को पहचानने के लिए उसका Index Number होता है।

C में Index हमेशा 0 से शुरू होता है।

Array:    marks

Index:      0    1    2    3    4
            ↓    ↓    ↓    ↓    ↓
Value:     87   78   91   80   76

इसलिए:

marks[0] = 87
marks[1] = 78
marks[2] = 91
marks[3] = 80
marks[4] = 76

खास बात:

अगर Array का size 5 है:

int marks[5];

तो valid Index होंगे:

0  1  2  3  4

Last Index हमेशा:

Size - 1

होता है।

इसलिए:

5 - 1 = 4

Array के किसी element को उसके Index Number की मदद से access करना Array Indexing कहलाता है।

उदाहरण:

int numbers[5] = {10, 20, 30, 40, 50};

पहली value:

numbers[0]

दूसरी value:

numbers[1]

तीसरी value:

numbers[2]

और इसी तरह आगे।

उदाहरण:

printf("%d", numbers[3]);

Output:

40

क्योंकि numbers[3] में 40 store है।

हमेशा याद रखें:
First element → Index 0
Second element → Index 1
Third element → Index 2
...
Last element → Index size - 1

Array को Declare करने का basic syntax है:

data_type array_name[size];

उदाहरण:

int marks[5];

यहाँ:

  • int → Data Type
  • marks → Array Name
  • 5 → Array Size

एक और example:

float prices[10];

यह 10 float values store करने के लिए Array बनाएगा।

Array बनाते समय उसमें values भी दी जा सकती हैं।

उदाहरण:

int numbers[5] = {10, 20, 30, 40, 50};

इसमें values इस तरह store होंगी:

Index       Value

  0          10
  1          20
  2          30
  3          40
  4          50

हम Array का size लिखे बिना भी Initialize कर सकते हैं:

int numbers[] = {10, 20, 30, 40, 50};

इस स्थिति में Compiler खुद elements की संख्या के आधार पर Array का size तय कर सकता है।

Array के किसी element को access करने के लिए:

array_name[index]

का इस्तेमाल किया जाता है।

उदाहरण:

int numbers[5] = {10, 20, 30, 40, 50};

printf("%d", numbers[2]);

Output:

30

क्योंकि:

numbers[2] → 30

Array के किसी element की value को बाद में बदला भी जा सकता है।

int numbers[5] = {10, 20, 30, 40, 50};

numbers[2] = 100;

अब Array होगा:

10  20  100  40  50

यहाँ numbers[2] की पुरानी value 30 को बदलकर 100 कर दिया गया है।

Array के सभी elements को एक-एक करके देखना या process करना Traversal कहलाता है।

इसके लिए आमतौर पर for Loop का इस्तेमाल किया जाता है।

#include <stdio.h>

int main(void)
{
    int numbers[5] = {10, 20, 30, 40, 50};

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

    return 0;
}
Output
10 20 30 40 50

यह कैसे काम करता है?

Loop पहले:

i = 0

से शुरू होता है।

फिर:

numbers[0] → 10
numbers[1] → 20
numbers[2] → 30
numbers[3] → 40
numbers[4] → 50

इसीलिए Arrays और Loops का इस्तेमाल अक्सर साथ में किया जाता है।

#include <stdio.h>

int main(void)
{
    int arr[5] = {10, 20, 30, 40, 50};

    printf("Array elements are:\n");

    for (int i = 0; i < 5; i++)
    {
        printf("%d ", arr[i]);
    }

    return 0;
}
Output
Array elements are:
10 20 30 40 50

C में Arrays को उनकी dimensions के आधार पर समझा जा सकता है।

मुख्य Types हैं:

  1. One-Dimensional Array
  2. Two-Dimensional Array
  3. Multidimensional Array

One-Dimensional Array में values एक ही sequence या row में store होती हैं।

उदाहरण:

int numbers[5] = {10, 20, 30, 40, 50};

इसे इस तरह समझ सकते हैं:

Index     0     1     2     3     4
          ↓     ↓     ↓     ↓     ↓
Value    10    20    30    40    50
Real-Life Example

Student के 5 subjects के marks:

int marks[5] = {85, 78, 92, 88, 76};
#include <stdio.h>

int main(void)
{
    int M[3], i, total = 0;
    float avg;

    printf("INPUT DETAILS\n");

    for (i = 0; i < 3; i++)
    {
        printf("Enter marks in subject %d: ", i + 1);
        scanf("%d", &M[i]);
    }

    printf("\nOUTPUT DETAILS\n");

    for (i = 0; i < 3; i++)
    {
        printf("Subject [%d] = %d\n", i + 1, M[i]);
        total = total + M[i];
    }

    avg = total / 3.0f;

    printf("Total = %d\n", total);
    printf("Average = %.2f\n", avg);

    return 0;
}
Output
INPUT DETAILS
Enter marks in subject 1: 80
Enter marks in subject 2: 75
Enter marks in subject 3: 90

OUTPUT DETAILS
Subject [1] = 80
Subject [2] = 75
Subject [3] = 90
Total = 245
Average = 81.67
#include <stdio.h>

int main(void)
{
    int A[20], N, i, L;

    printf("Enter the array length: ");
    scanf("%d", &N);

    printf("Enter the array elements:\n");

    for (i = 0; i < N; i++)
    {
        scanf("%d", &A[i]);
    }

    L = A[0];

    for (i = 1; i < N; i++)
    {
        if (A[i] > L)
        {
            L = A[i];
        }
    }

    printf("Largest element = %d\n", L);

    return 0;
}
Output
Enter the array length: 5
Enter the array elements:
10 25 7 45 30

Largest element = 45
Explanation:

Program सबसे पहले पहले element को Largest मानता है।

फिर बाकी elements के साथ उसकी तुलना करता है।

अगर उससे बड़ी value मिलती है, तो वह नई value को Largest मान लेता है।

Reverse करने का मतलब है Array के elements को उल्टे क्रम में रखना।

उदाहरण:

Original:
10 20 30 40 50

Reversed:
50 40 30 20 10
#include <stdio.h>

int main(void)
{
    int A[20], N, i, j, temp;

    printf("Enter the array length: ");
    scanf("%d", &N);

    printf("Enter the array elements:\n");

    for (i = 0; i < N; i++)
    {
        scanf("%d", &A[i]);
    }

    for (i = 0, j = N - 1; i < j; i++, j--)
    {
        temp = A[i];
        A[i] = A[j];
        A[j] = temp;
    }

    printf("Reversed list:\n");

    for (i = 0; i < N; i++)
    {
        printf("%5d", A[i]);
    }

    return 0;
}
Output
Enter the array length: 5
Enter the array elements:
10 20 30 40 50

Reversed list:
   50   40   30   20   10
Explanation:

Program पहले element को last element के साथ swap करता है।

फिर दूसरे element को second-last element के साथ swap करता है।

यह process Array के बीच तक चलता है।

Two-Dimensional Array (2D Array) में data rows और columns के रूप में store होता है।

इसे आप एक Table की तरह समझ सकते हैं।

उदाहरण:

int matrix[2][3] = {
    {10, 20, 30},
    {40, 50, 60}
};

इसे इस तरह देखा जा सकता है:

          Column
           0    1    2
        ┌────┬────┬────┐
Row 0   │ 10 │ 20 │ 30 │
        ├────┼────┼────┤
Row 1   │ 40 │ 50 │ 60 │
        └────┴────┴────┘

50 को access करने के लिए:

matrix[1][1]

क्योंकि:

Row = 1
Column = 1

2D Arrays का उपयोग:

  • Tables
  • Matrices
  • Marksheets
  • Game Boards
  • Rows और Columns वाले Data

में किया जा सकता है।

#include <stdio.h>

int main(void)
{
    int A[3][3], i, j;

    printf("Enter the elements of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    printf("\nLower triangle of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            if (j <= i)
                printf("%5d", A[i][j]);
            else
                printf("%5s", "");
        }

        printf("\n");
    }

    return 0;
}

अगर Matrix है:

1 2 3
4 5 6
7 8 9

तो Lower Triangle होगा:

1
4 5
7 8 9
Logic

Lower Triangle के लिए:

j <= i

का इस्तेमाल किया जाता है।

#include <stdio.h>

int main(void)
{
    int A[3][3], i, j;

    printf("Enter the elements of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    printf("\nUpper triangle of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            if (j >= i)
                printf("%5d", A[i][j]);
            else
                printf("%5s", "");
        }

        printf("\n");
    }

    return 0;
}
Example

Input:

1 2 3
4 5 6
7 8 9

Output:

1 2 3
  5 6
    9

Upper Triangle के लिए:

j >= i

का इस्तेमाल किया जाता है।

Matrix की Main Diagonal को Principal Diagonal भी कहा जाता है।

उदाहरण:

1 2 3
4 5 6
7 8 9

इसकी Main Diagonal है:

1
5
9
#include <stdio.h>

int main(void)
{
    int A[3][3], i, j;

    printf("Enter the elements of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    printf("\nPrincipal diagonal of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            if (i == j)
                printf("%5d", A[i][j]);
            else
                printf("%5s", "");
        }

        printf("\n");
    }

    return 0;
}
Logic

Main Diagonal के लिए:

i == j

होना चाहिए।

3×3 Matrix:

1 2 3
4 5 6
7 8 9

की Secondary Diagonal है:

3
5
7
#include <stdio.h>

int main(void)
{
    int A[3][3], i, j;

    printf("Enter the elements of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    printf("\nSecondary diagonal of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            if (i + j == 2)
                printf("%5d", A[i][j]);
            else
                printf("%5s", "");
        }

        printf("\n");
    }

    return 0;
}
Logic

3×3 Matrix के लिए Secondary Diagonal में:

i + j = 2

होता है।

उदाहरण:

0 + 2 = 2
1 + 1 = 2
2 + 0 = 2

Matrix का Transpose बनाने पर उसकी Rows, Columns बन जाती हैं और Columns, Rows बन जाते हैं।

उदाहरण:

Original Matrix:

1  2  3  4
5  6  7  8
9 10 11 12

Transpose:

1  5  9
2  6 10
3  7 11
4  8 12
#include <stdio.h>

int main(void)
{
    int A[3][4], i, j;

    printf("Enter the elements of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    printf("\nTranspose of the matrix:\n");

    for (j = 0; j < 4; j++)
    {
        for (i = 0; i < 3; i++)
        {
            printf("%5d", A[i][j]);
        }

        printf("\n");
    }

    return 0;
}
Important Point

अगर Matrix का size:

3 × 4

है, तो Transpose के बाद उसका size:

4 × 3

हो जाएगा।

Matrix में Row Sum और Column Sum निकालना

2D Array की मदद से हम हर Row और Column का Sum भी निकाल सकते हैं।

उदाहरण:

1  2  3  4
5  6  7  8
9 10 11 12

Row Sums:

10
26
42

Column Sums:

15  18  21  24
#include <stdio.h>

int main(void)
{
    int A[3][4];
    int Rs[3] = {0};
    int Cs[4] = {0};
    int i, j;

    printf("Enter the elements of the matrix:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            Rs[i] = Rs[i] + A[i][j];
        }
    }

    for (j = 0; j < 4; j++)
    {
        for (i = 0; i < 3; i++)
        {
            Cs[j] = Cs[j] + A[i][j];
        }
    }

    printf("\nMatrix with Row Sums:\n");

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 4; j++)
        {
            printf("%5d", A[i][j]);
        }

        printf("   = %d\n", Rs[i]);
    }

    printf("\nColumn Sums:\n");

    for (j = 0; j < 4; j++)
    {
        printf("%5d", Cs[j]);
    }

    printf("\n");

    return 0;
}
Example

Input:

1  2  3  4
5  6  7  8
9 10 11 12

Output:

    1    2    3    4   = 10
    5    6    7    8   = 26
    9   10   11   12   = 42

Column Sums:
   15   18   21   24
जरूरी Formula

Row का Sum:

Rs[i] = Rs[i] + A[i][j];

Column का Sum:

Cs[j] = Cs[j] + A[i][j];

दो Matrices को Add करने के लिए दोनों का Rows और Columns का size समान होना चाहिए।

उदाहरण:

2×3 + 2×3 = Possible

लेकिन:

2×3 + 3×2 = Not Possible
#include <stdio.h>

int main(void)
{
    int A[5][5], B[5][5], C[5][5];
    int i, j, m, n, p, q;

    printf("Enter the number of rows and columns of Matrix A: ");
    scanf("%d %d", &m, &n);

    printf("Enter the number of rows and columns of Matrix B: ");
    scanf("%d %d", &p, &q);

    if (m != p || n != q)
    {
        printf("Matrices cannot be added.\n");
        return 0;
    }

    printf("\nEnter the elements of Matrix A:\n");

    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    printf("\nEnter the elements of Matrix B:\n");

    for (i = 0; i < p; i++)
    {
        for (j = 0; j < q; j++)
        {
            scanf("%d", &B[i][j]);
        }
    }

    printf("\nResultant Matrix:\n");

    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            C[i][j] = A[i][j] + B[i][j];
            printf("%5d", C[i][j]);
        }

        printf("\n");
    }

    return 0;
}
जरूरी नियम

दो Matrices को तभी जोड़ा जा सकता है, जब दोनों में Rows और Columns की संख्या समान हो

उदाहरण:

2×3 + 2×3 = जोड़ सकते हैं

लेकिन:

2×3 + 3×2 = जोड़ नहीं सकते

Matrix Multiplication में एक जरूरी Rule है।

अगर:

Matrix A = m × n
Matrix B = p × q

तो Multiplication तभी possible होगा जब:

n = p

हो।

Resultant Matrix का size होगा:

m × q

उदाहरण:

A = 2×3
B = 3×2

तो:

A × B = 2×2
#include <stdio.h>

int main(void)
{
    int A[5][5], B[5][5], C[5][5];
    int i, j, k;
    int m, n, p, q;

    printf("Enter the number of rows and columns of Matrix A: ");
    scanf("%d %d", &m, &n);

    printf("Enter the number of rows and columns of Matrix B: ");
    scanf("%d %d", &p, &q);

    if (n != p)
    {
        printf("Matrices cannot be multiplied.\n");
        return 0;
    }

    printf("\nEnter the elements of Matrix A:\n");

    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }

    printf("\nEnter the elements of Matrix B:\n");

    for (i = 0; i < p; i++)
    {
        for (j = 0; j < q; j++)
        {
            scanf("%d", &B[i][j]);
        }
    }

    for (i = 0; i < m; i++)
    {
        for (j = 0; j < q; j++)
        {
            C[i][j] = 0;

            for (k = 0; k < n; k++)
            {
                C[i][j] = C[i][j] + A[i][k] * B[k][j];
            }
        }
    }

    printf("\nResultant Matrix:\n");

    for (i = 0; i < m; i++)
    {
        for (j = 0; j < q; j++)
        {
            printf("%5d", C[i][j]);
        }

        printf("\n");
    }

    return 0;
}
जरूरी नियम

अगर:

Matrix A = m × n
Matrix B = p × q

तो दोनों Matrices को Multiply तभी किया जा सकता है, जब:

n = p

Multiply करने के बाद बनने वाली Matrix का size होगा:

m × q
Example

अगर:

A = 2×3
B = 3×2

तो:

A × B = 2×2

यानी पहली Matrix के Rows और दूसरी Matrix के Columns के हिसाब से Resultant Matrix का size तय होता है।

जिस Array में दो से ज्यादा dimensions हों, उसे Multidimensional Array कहा जाता है।

उदाहरण:

int data[2][3][4];

यह एक 3D Array है।

Multidimensional Arrays का उपयोग ऐसे data में किया जा सकता है जिसमें एक से ज्यादा levels हों।

उदाहरण:

  • Scientific Data
  • Simulations
  • Complex Calculations
  • 3D Data
  • कुछ Games और Applications

एक 3D Array में तीन Index होते हैं:

A[i][j][k]

यहाँ:

  • i → Block
  • j → Row
  • k → Column
#include <stdio.h>

int main(void)
{
    int A[2][2][2];
    int i, j, k;

    printf("Enter 8 elements:\n");

    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 2; j++)
        {
            for (k = 0; k < 2; k++)
            {
                scanf("%d", &A[i][j][k]);
            }
        }
    }

    printf("\nElements of the 3D array:\n");

    for (i = 0; i < 2; i++)
    {
        printf("Block %d:\n", i + 1);

        for (j = 0; j < 2; j++)
        {
            for (k = 0; k < 2; k++)
            {
                printf("%5d", A[i][j][k]);
            }

            printf("\n");
        }

        printf("\n");
    }

    return 0;
}
Example

Input:

1 2 3 4 5 6 7 8

Output:

Elements of the 3D array:

Block 1:
    1    2
    3    4

Block 2:
    5    6
    7    8
#include <stdio.h>

int main(void)
{
    int A[2][2][2];
    int i, j, k;
    int sum = 0;

    printf("Enter 8 elements:\n");

    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 2; j++)
        {
            for (k = 0; k < 2; k++)
            {
                scanf("%d", &A[i][j][k]);
                sum = sum + A[i][j][k];
            }
        }
    }

    printf("\nSum of all elements = %d\n", sum);

    return 0;
}

अगर Input है:

1 2 3 4 5 6 7 8

तो:

Sum = 36

Multidimensional Array में एक से ज्यादा Dimensions होते हैं।

2D Array → A[i][j]
3D Array → A[i][j][k]
4D Array → A[i][j][k][l]

यानी 2D में 2 Dimensions, 3D में 3 Dimensions और 4D में 4 Dimensions होते हैं।

C में String को Character Array की मदद से store किया जाता है।

उदाहरण:

char name[] = "Mujtaba";

Memory में यह कुछ इस तरह store होता है:

M  u  j  t  a  b  a  \0

यहाँ \0 String के end को बताता है।

Example
#include <stdio.h>

int main(void)
{
    char name[] = "Mujtaba";

    printf("%s", name);

    return 0;
}

Output:

Mujtaba

Strings और Character Arrays C Programming में बहुत important हैं और आगे Strings topic में इन्हें detail में समझा जा सकता है।

हम Loop की मदद से User से Array की कई values ले सकते हैं।

#include <stdio.h>

int main(void)
{
    int numbers[5];

    printf("Enter 5 numbers:\n");

    for (int i = 0; i < 5; i++)
    {
        scanf("%d", &numbers[i]);
    }

    printf("Array elements are:\n");

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

    return 0;
}
Input
10
20
30
40
50
Output
Array elements are:
10 20 30 40 50

Array में किसी value को ढूँढने की process को Searching कहा जाता है।

Beginners के लिए Linear Search समझना आसान है।

Example
#include <stdio.h>

int main(void)
{
    int numbers[5] = {10, 20, 30, 40, 50};
    int search, found = 0;

    printf("Enter the number to search: ");
    scanf("%d", &search);

    for (int i = 0; i < 5; i++)
    {
        if (numbers[i] == search)
        {
            found = 1;
            break;
        }
    }

    if (found)
    {
        printf("Number found.");
    }
    else
    {
        printf("Number not found.");
    }

    return 0;
}

अगर User 30 search करता है:

Number found.

Array की values को किसी order में arrange करना Sorting कहलाता है।

उदाहरण:

Before:
50 20 40 10 30

Ascending order में:

10 20 30 40 50

Beginners के लिए Bubble Sort एक आसान Sorting technique है।

#include <stdio.h>

int main(void)
{
    int numbers[5] = {50, 20, 40, 10, 30};

    for (int i = 0; i < 5 - 1; i++)
    {
        for (int j = 0; j < 5 - i - 1; j++)
        {
            if (numbers[j] > numbers[j + 1])
            {
                int temp = numbers[j];
                numbers[j] = numbers[j + 1];
                numbers[j + 1] = temp;
            }
        }
    }

    printf("Sorted array:\n");

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

    return 0;
}
Output
Sorted array:
10 20 30 40 50

Array पर कई तरह के operations किए जा सकते हैं।

              ARRAY
                │
       ┌────────┼────────┐
       ↓        ↓        ↓
   Traversal  Searching  Sorting
       │        │        │
       ↓        ↓        ↓
  सभी values  Value को   Values को
  को देखना    ढूँढना     arrange करना

इसके अलावा:

  • Insertion
  • Deletion
  • Updating
  • Copying
  • Merging
  • Reversing

जैसे operations भी किए जा सकते हैं।

उदाहरण:

Original:
10 20 30 40 50

Reverse:
50 40 30 20 10
#include <stdio.h>

int main(void)
{
    int numbers[5] = {10, 20, 30, 40, 50};

    printf("Reversed array:\n");

    for (int i = 4; i >= 0; i--)
    {
        printf("%d ", numbers[i]);
    }

    return 0;
}

Output:

50 40 30 20 10

Arrays सीखते समय इन बातों को हमेशा याद रखें।

1. Index 0 से शुरू होता है

int arr[5];

इसके valid Index:

0 1 2 3 4

2. Array में एक ही Data Type की Values होती हैं

उदाहरण:

int arr[5];

इसमें Integer values store की जाती हैं।

3. Array Size

int arr[10];

यह 10 elements के लिए Array बनाता है।

4. Invalid Index का इस्तेमाल न करें

अगर:

int arr[5];

है, तो:

arr[4]

valid है।

लेकिन:

arr[5]

valid Index नहीं है।

C में invalid Index access करने पर Undefined Behavior हो सकता है और Program unexpected result दे सकता है।

5. Last Index हमेशा Size – 1 होता है

अगर Size:

10

है, तो Last Index:

9

होगा।

Mistake 1: Invalid Index का इस्तेमाल करना

गलत:

int arr[5];

arr[5] = 100;

Valid Index केवल:

0 से 4

तक हैं।

Mistake 2: Index को 1 से शुरू समझना

गलत:

First element = arr[1]

सही:

First element = arr[0]

Mistake 3: Loop को ज्यादा आगे चलाना

गलत:

for (int i = 0; i <= 5; i++)
{
    printf("%d ", arr[i]);
}

अगर Array का size 5 है, तो सही तरीका:

for (int i = 0; i < 5; i++)
{
    printf("%d ", arr[i]);
}

Arrays और Loops को अक्सर एक साथ use किया जाता है।

मान लीजिए:

int arr[5] = {10, 20, 30, 40, 50};

अब Loop की मदद से सभी elements पर काम किया जा सकता है:

for (int i = 0; i < 5; i++)
{
    printf("%d ", arr[i]);
}

यह इस तरह काम करेगा:

i = 0 → arr[0] → 10
i = 1 → arr[1] → 20
i = 2 → arr[2] → 30
i = 3 → arr[3] → 40
i = 4 → arr[4] → 50

इस Pattern को समझना Array Programming के लिए बहुत जरूरी है।

FeatureNormal VariableArray
Dataएक valueकई values
Exampleint ageint ages[10]
AccessVariable NameIndex
उपयोगSingle DataRelated Data का Collection

उदाहरण:

int age = 25;

इसमें एक value store है।

जबकि:

int ages[5] = {20, 21, 22, 23, 24};

इसमें 5 values store हैं।

मान लीजिए (Consider):

int arr[5] = {10, 20, 30, 40, 50};

इसमें:

Total Elements = 5

और Index हैं:

0 1 2 3 4

इसका simple formula है:

Last Index = Number of Elements - 1

इसलिए:

5 - 1 = 4

Array के elements memory में एक-दूसरे के पास contiguous memory locations में store होते हैं।

उदाहरण:

int arr[4] = {10, 20, 30, 40};

इसे conceptually इस तरह समझ सकते हैं:

┌────────┬────────┬────────┬────────┐
│ arr[0] │ arr[1] │ arr[2] │ arr[3] │
│   10   │   20   │   30   │   40   │
└────────┴────────┴────────┴────────┘

यह concept आगे Pointers in C सीखते समय बहुत useful होगा।

Array को Function में भी pass किया जा सकता है।

#include <stdio.h>

void printArray(int arr[], int size)
{
    for (int i = 0; i < size; i++)
    {
        printf("%d ", arr[i]);
    }
}

int main(void)
{
    int numbers[5] = {10, 20, 30, 40, 50};

    printArray(numbers, 5);

    return 0;
}

Output:

10 20 30 40 50

बड़े Programs में यह तरीका बहुत useful होता है क्योंकि इससे Code को अलग-अलग Functions में divide करना आसान हो जाता है।

Arrays को अच्छी तरह समझने के लिए इन Programs की Practice करें।

  1. Array को Declare और Initialize करना।
  2. Array के सभी elements को Print करना।
  3. User से Array Input लेना।
  4. Array का Sum निकालना।
  5. Array का Average निकालना।
  6. Largest Element find करना।
  7. Smallest Element find करना।
  8. Even और Odd Elements count करना।
  9. Positive और Negative Elements count करना।
  10. Array को Reverse करना।
  1. Linear Search करना।
  2. Element की Position find करना।
  3. किसी Element की Occurrences count करना।
  4. Duplicate Elements find करना।
  1. Array को Ascending Order में Sort करना।
  2. Array को Descending Order में Sort करना।
  3. Bubble Sort करना।
  4. Selection Sort करना।
  1. Matrix Print करना।
  2. दो Matrices को Add करना।
  3. दो Matrices को Subtract करना।
  4. दो Matrices को Multiply करना।
  5. Matrix का Transpose निकालना।
  6. Matrix के Elements का Sum निकालना।
  7. Diagonal Elements Print करना।
  1. Array को Function में Pass करना।
  2. Function की मदद से Array Search करना।
  3. Function की मदद से Array Sort करना।
  4. Character Array के साथ काम करना।
  5. Multidimensional Arrays की Practice करना।

Array क्या है?

Array एक ही Data Type की कई values को एक ही नाम के अंदर store करने का तरीका है।

Array Index कहाँ से शुरू होता है?

0

से।

One-Dimensional Array

int arr[5];

Two-Dimensional Array

int matrix[2][3];

3D Array

int data[2][3][4];

Array Element को Access करना

arr[index]

Array को Traverse करना

for (int i = 0; i < size; i++)
{
    printf("%d ", arr[i]);
}

Important Array Operations

Traversal
Searching
Sorting
Insertion
Deletion
Updating
Copying
Merging
Reversing

सबसे जरूरी बात

Array = कई related values
Index = Element की position
Loop = Elements पर बार-बार काम करने का तरीका

C में Array क्या है?

Array एक ही Data Type की कई values को एक ही नाम के अंदर store करने का तरीका है।

C में Arrays का उपयोग क्यों किया जाता है?

Arrays का उपयोग कई related values को एक जगह store और manage करने के लिए किया जाता है। इससे बड़े data पर काम करना आसान हो जाता है।

क्या C में Array का Index 0 से शुरू होता है?

हाँ। C में Array का पहला element 0 Index पर होता है।

One-Dimensional Array क्या है?

One-Dimensional Array में values एक ही sequence में store होती हैं।

उदाहरण:

int numbers[5];

Two-Dimensional Array क्या है?

Two-Dimensional Array में data Rows और Columns में store होता है।

उदाहरण:

int matrix[3][3];

क्या Array में अलग-अलग Data Types की values store कर सकते हैं?

नहीं। एक normal C Array में सभी elements एक ही Data Type के होते हैं।

उदाहरण:

int arr[5];

इसमें Integer values store होती हैं।

Array का element कैसे access करते हैं?

Array Name और Index की मदद से:

arr[0]

Array Traversal क्या है?

Array के सभी elements को एक-एक करके access या process करना Array Traversal कहलाता है। इसके लिए अक्सर Loop का उपयोग किया जाता है।

Array का Last Index कैसे पता करें?

अगर Array का size 10 है, तो Last Index:

10 - 1 = 9

होगा।

इसलिए Last Index का Formula है:

Last Index = Size - 1

अगर Invalid Array Index Access करें तो क्या होगा?

C में Invalid Index access करने पर Undefined Behavior हो सकता है। इससे गलत output या unexpected behavior हो सकता है।

क्या Array को Function में Pass कर सकते हैं?

हाँ। Array को Function में Pass किया जा सकता है। इससे बड़े Programs को छोटे और manageable Functions में divide करना आसान होता है।



Leave a Comment

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *

Scroll to Top