How do I determine the number that appears the most times and the position in which it is?

2

A vector of n positions has been read, how do I determine the number that appears the most and the position it is in?

programa {
    funcao inicio(){
        inteiro vetor[]
        inteiro numero, conta
        inteiro i, j, n

        leia(n)
        para (i = 0; i < n; i++){
            leia(vetor[i])
        }

        para (i = 0; i < n; i++){
            para (j = 0; j < n; j++){
                se (vetor[i] == vetor[j] e i != j){

                    escreva("numeros repetido ", vetor[i], " posição ", i,", ", j, "\n")
                }
            }
        }
    }
}

I can not determine which number repeats more, what I've been able to determine is where it's repeated.

    
asked by anonymous 17.10.2017 / 17:31

2 answers

0

My resolution, I used two 5-position vectors in vetor1[5] and vetor2[5] because if not, did not compile immediately the reading of n will have to be 5, but the idea is that to change up

programa {

    funcao inicio(){
        // Declaração de variaveis
        inteiro vetor1[5], vetor2[5], n, chave, maior, j=1, i
        logico mensagem = verdadeiro

        // Leitura de n
        leia(n)

        // leitura do vetor principal
        para(i=1; i<n; i++){
            leia(vetor1[i])
        }

        // Vetor 2 define as repitições, deixando primeiro todas iguais a 0
        para(i=1; i<n; i++){
            vetor2[i] = 0
        }

        // Verifica se dois numeros são iguais e se sim aumenta no vetor repetições
        para(i=1; i<n; i++){
            para(j=1; j<n; j++){
                se (vetor1[i] == vetor1[j]){
                    vetor2[i] = vetor2[i] + 1
                }
            }
        }
        // Determina qual é o maior nº de repetições
        maior = 0
        para(i=1; i<n; i++){
            se(vetor2[i] > maior){
                maior = vetor2[i] 
            }
        }
        // Determina em que posições esta repetido e depois qual é o numero repetido
        para(i=1; i<n; i++){
            se (vetor2[i] == maior){
                chave = i
                // Utilizado o ciclo while para não repetir a mensagem o nº de vezes de repetições do vetor 2 
                enquanto(mensagem == verdadeiro){
                    escreva("\nNumero mais repetido: ", vetor1[chave], " e repete ", maior, " vezes")
                    mensagem = falso
                }
                escreva("\nPosições: ", i)
            }

        }       
    }
} 
    
17.10.2017 / 23:21
-2

Here's the solution to the problem in Python 3:

def mais_repetido(array):
    s = set(array)
    d = {}

    for i in s:
        d[i] = 0

    for i in s:
        for j in array:
            if i == j:
                d[i] += 1

    maior = max(d.values())
    chave = 0

    for i in d:
        if d[i] == maior:
            chave = i
            break

    for i in range(len(array)):
        if array[i] == chave:
            print('Posição: {}'.format(i))
    
17.10.2017 / 18:53