How do I determine the number that appears the most times and the position it is in?
Was performed the reading of a vector of n positions, how do I determine the number that appears more and the position in which it is?
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't determine which number repeats the most, what I've been able to determine is where there are repeats.
2
2 answers
My resolution, I used two vectors of 5 positions in vetor1[5]
and vetor2[5]
because if not, did not compile soon the reading of n will have to be mandatory 5, but the idea that da to change on top
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)
}
}
}
}
0
Author: Rúben Silva, 2017-10-23 16:53:17
Here is the solution of 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))
-2
Author: flpn, 2017-10-17 16:53:26