Uma matriz é definida como a coleção de tipos semelhantes de itens de dados armazenados em locais de memória contíguos. Matrizes são o tipo de dados derivado na linguagem de programação C que pode armazenar o tipo primitivo de dados, como int, char, double, float, etc. Ele também tem a capacidade de armazenar a coleção de tipos de dados derivados, como ponteiros, estrutura, etc. O array é a estrutura de dados mais simples onde cada elemento de dados pode ser acessado aleatoriamente usando seu número de índice.
A matriz C é benéfica se você precisar armazenar elementos semelhantes. Por exemplo, se quisermos armazenar as notas de um aluno em 6 disciplinas, então não precisamos definir variáveis diferentes para as notas nas diferentes disciplinas. Em vez disso, podemos definir um array que pode armazenar as marcas de cada assunto em locais de memória contíguos.
Usando o array, podemos acessar os elementos facilmente. Apenas algumas linhas de código são necessárias para acessar os elementos do array.
Propriedades da matriz
A matriz contém as seguintes propriedades.
- Cada elemento de uma matriz é do mesmo tipo de dados e carrega o mesmo tamanho, ou seja, int = 4 bytes.
- Os elementos da matriz são armazenados em locais de memória contíguos, onde o primeiro elemento é armazenado no menor local de memória.
- Os elementos do array podem ser acessados aleatoriamente, pois podemos calcular o endereço de cada elemento do array com o endereço base fornecido e o tamanho do elemento de dados.
Vantagem da matriz C
1) Otimização de código : Menos código para acessar os dados.
2) Facilidade de travessia : Usando o loop for, podemos recuperar facilmente os elementos de um array.
3) Facilidade de classificação : para classificar os elementos do array, precisamos apenas de algumas linhas de código.
4) Acesso Aleatório : Podemos acessar qualquer elemento aleatoriamente usando o array.
Desvantagem da matriz C
1) Tamanho Fixo : Seja qual for o tamanho que definirmos no momento da declaração do array, não podemos ultrapassar o limite. Portanto, ele não aumenta de tamanho dinamicamente como o LinkedList que aprenderemos mais tarde.
Declaração da matriz C
Podemos declarar um array na linguagem c da seguinte maneira.
data_type array_name[array_size];
Agora, vamos ver o exemplo para declarar o array.
int marks[5];
Aqui, int é o tipo de dados , as marcas são nome_da_matriz , e 5 é o tamanho_da_matriz .
Inicialização do array C
A maneira mais simples de inicializar um array é usando o índice de cada elemento. Podemos inicializar cada elemento do array usando o índice. Considere o seguinte exemplo.
como encontrar coisas escondidas no Android
marks[0]=80;//initialization of array marks[1]=60; marks[2]=70; marks[3]=85; marks[4]=75;
Exemplo de matriz 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'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++){>
Matriz C: Declaração com Inicialização
Podemos inicializar o array c no momento da declaração. Vamos ver o código.
int marks[5]={20,30,40,50,60};
Nesse caso, há não há necessidade de definir o tamanho . Portanto, também pode ser escrito como o código a seguir.
int marks[]={20,30,40,50,60};
Vamos ver o programa C para declarar e inicializar o array em 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('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++){>
Exemplo de array C: classificando um array
No programa a seguir, estamos usando o método bubble sort para classificar o array em ordem crescente.
#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++){>