/*Escreva um programa leia uma matriz do teclado e então imprime os elementos com menor e maior frequência de ocorrência na matriz.*/ #include #define MAX 100 int main(){ int matriz[MAX][MAX], /*declara uma matriz MAX por MAX*/ num_linhas, /*número de linhas a serem usadas*/ num_colunas, /*número de colunas a serem usadas*/ i, j, k, l, /*índices para usar em for*/ max, /*elemento de maior frequencia da matriz*/ max_freq = 0, /*numero de vezes que o elemento de maior frequencia aparece*/ min, /*elemento de menor frequencia da matriz*/ min_freq, /*numero de vezes que o elemento de menor frequencia aparece*/ frequencia; /*usado para descobrir a frequencia de um número*/ printf("Digite o número de linhas e de colunas da matriz (max. %d)\n", MAX); scanf("%d %d", &num_linhas, &num_colunas); printf("Digite a matriz:\n"); for(i = 0; i < num_linhas; i++) for(j = 0; j < num_colunas; j++) scanf("%d", &matriz[i][j]); for(i = 0; i < num_linhas; i++){ for(j = 0; j < num_colunas; j++){ /*vamos calcular a frequencia do valor matriz[i][j] na matriz*/ frequencia = 0; /*variável acumuladora*/ for(k = 0; k < num_linhas; k++){ for(l = 0; l < num_colunas; l++){ if(matriz[i][j] == matriz[k][l]) frequencia++; /*aumentamos a frequencia já que vimos uma ocorrência de matriz[i][j] em algum lugar da matriz*/ } } if(frequencia > max_freq) { /*se a frequencia encontrada é maior do que a maior frequencia vista anteriormente, atualizo qual é a maior frequencia vista anteriormente e quem é o valor que tem essa frequencia - lembre que max_freq começa com zero*/ max_freq = frequencia; max = matriz[i][j]; } if(frequencia < min_freq || (i == 0 && j == 0)) { /*se a frequencia encontrada é menor do que a menor frequencia vista anteriormente ou esse é o primeiro elemento da matriz (ou seja, eu não sei qual é menor frequencia vista anteriormente), atualizo qual é a menor frequencia vista anteriormente e quem é o valor que tem essa frequencia*/ min_freq = frequencia; min = matriz[i][j]; } } } printf("Elemento com maior frequencia: %d (%d vezes)\n", max, max_freq); printf("Elemento com menor frequencia: %d (%d vezes)\n", min, min_freq); return 0; }