Dev - C++ - Funcion de la moda

 
Vista:
Imágen de perfil de Francisco
Val: 55
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Funcion de la moda

Publicado por Francisco (36 intervenciones) el 06/01/2018 05:02:12
Hola, ¡como estan?
Les mando un ejercicio resuelto sobre calcular la moda, que la moda es el numero que mas se repite en el arreglo de numeros.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
using namespace std;
int moda();
int main(){
        int mode=0;
        mode=moda();
        cout<<"la moda es: "<<moda<<endl;
 
 
        return 0;
}
int moda(){
        int mode=0;
        int arr[6];
        for(int i=0;i<6;i++){
            cout<<"ingrese valores del arreglo "<<endl;
            cin >> arr[i];
        }
        for(int i=0;i<6;i++){
            if(arr[i]==arr[5-i]){
                mode=arr[5-i];
            }
            }
            return mode;
}

Cada vez que ingreso los valores siempre la moda me da 1, ¿Porque sera?, la sintaxis en el if esta bien hecha, pero siempre me da 1 la moda(salida). ¿Hay algo que tenga que agregar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 55
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Funcion de la moda

Publicado por Francisco (36 intervenciones) el 06/01/2018 06:40:01
Lo que yo pensaria es ordenarlos de menor a mayor. Asi.
1
2
3
4
5
6
7
8
9
10
11
12
for(int i=0;i<n-1;i++){
    for(j=i+1;j<n;j++){
             if(arr[i]>arr[j]){
                 aux=arr[i];
                 arr[i]=arr[j];
                 aux=arr[j];
         }
            if(arr[i]==arr[j]){
               mode=arr[j];
           }
      }
   }
Evaluen, no se si esta bien. Ordene de menor a mayor (en orden ascendente) todos los elementos y luego como que iguale el valor del elemento en la posicion i con el que le sigue, es decir, el elemento en la posicion j.
Necesito saber si esto que planteé esta bien por favor. Y si mi solucion es aplicable al pseudocodigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Erick
Val: 57
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Funcion de la moda

Publicado por Erick (21 intervenciones) el 08/01/2018 20:28:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int main()
{
	int arreglo[20],auxiliar[20], pos;
	int repeticiones=0, numero, mayor, contador ;
	cout<<"Digite el numero maximo de numeros: ";
	cin>>numero;
 
	for(int i=0; i<numero;i++)
	{
		cout<<"Digite el numero "<<i+1<<": ";
		cin>>arreglo[i];
	}
 
	for(int i=0; i<numero;i++)
	{
		contador = 0;
		mayor = arreglo[i];
		for(int j=0; j<numero;j++)
		{
			if(mayor == arreglo[j])
			{
				contador++;
			}
		}
		auxiliar[i] = contador;
	}
	repeticiones = auxiliar[0];
	for(int i=0;i<numero; i++)
	{
		if(repeticiones < auxiliar[i])
		{
			repeticiones = auxiliar[i];
			pos = i;
		}
	}
	if(repeticiones > 1)
	{
		cout<<"\nEl numero mas en comun es: "<<arreglo[pos];
		cout<<"\nNumero de repeticiones: "<<repeticiones<<"\n\n";
	}
	else
	{
		cout<<"\nNo hay numeros en comun!\n\n";
	}
	system("pause");
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar