Could anyone help me with the following question:
Construct a program that fills a 6x4 array with integers, computes and shows how many elements in that array are greater than 30, and then assemble a second array with elements other than 30. Instead of the number 30, the second matrix, put the number zero.
I have the following code but it is giving the following error: stack smashing detected: terminated and I am not able to know why. I am using Netbeans as IDE.
#include <stdio.h>
#include <stdlib.h>
#define L 2
#define C 2
int main(int argc, char** argv) {
int matriz[L][C], mat2[L][C];
int i, j, pL = 0, pC = 0, contMaior30 = 0, contIgual30 = 0, contDif30 = 0;
for (i = 0; i < L; i++) {
for (j = 0; j < C; j++) {
printf("M[%d][%d] = ", i, j);
scanf("%d", &matriz[i][j]);
}
}
//Laço para fazer a verificação dos valores digitados
for (i = 0; i < L; i++) {
for (j = 0; j < C; j++) {
if (matriz[i][j] <= 30) {
if (matriz[i][j] == 30) {
mat2[pL][pC] = 0;
} else if (matriz[i][j] < 30) {
mat2[pL][pC] = matriz[i][j];
}
contDif30++;
pL++;
pC++;
}
//Contar a quantidade de números maiores que 30
else {
contMaior30++;
}
}
}
//Não sei como controlar a impressão de segunda matriz
printf("\nImpressão do segundo vetor: \n");
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
printf("\tM2: %d \n", mat2[i][j]);
}
}
return (EXIT_SUCCESS);
}