Buenas! Creo que algunos ya me conocen, estoy comenzando a estudiar C++ y pues soy un estudiante de universidad, aqui ya me han ayudado muchisimo y pues quiero seguirlos molestando :xD se que algun dia sere yo el que resuelva dudas pero por el momento sere yo el de las dudas. Pues los problemas van asi:
(http://i60.tinypic.com/o8uw5k.jpg)
En el pensamiento obtuve una manera de como resolverlo... pero ya pasandolo a C++ creo que no di en el clavo. Yo llevo mi codigo del primer ejercicio de esta manera y no sale nada de lo que quiero:
#include <iostream>
using namespace std;
int main(){
int vector[20];
int i;
int resultado;
for (i=0; i<20; i++){
cout << "Ingresa 20 numeros: "; cin >> vector[i]; // HASTA QUE SE INGRESEN 20 NUMEROS SALE DEL CICLO
}
//CUANTAS VECES SE INGRESARON LOS NUMEROS
for (i=0; i<20; i++){
if (vector[1]==i){
resultado++;
}
}
//IMPRIMIMOS QUE NUMEROS SE REPITIERON
cout << "El numero " << vector << "esta repetido " << resultado << " veces";
cin.get();
return 0;
}
Podrian darme una mano con esto? En la impresion de resultados quiero que salgan cuantos numeros se repitieron, si el 2 se repitio 3 veces tengo que indicarlo, y tambien si otro numero se repitio tantas veces, tambien tengo que indicarlo, tengo que identificar cuantos numeros se ingresaron repetidas veces! El segundo problema no se me ocurre como hacerlo :( espero puedan ayudarme, gracias!
En el cout tienes que poner "vector[ i ]". Y en el if, ifual, que pussite "vector[ 1 ]".
Aunque ten en cuenta que tienes los 2 for con la misma variable "i". En uno, pon otra variable diferente para contar.
Replantea el código.
Además de lo ya dicho me parece que si la variable resultado no tiene un valor inicial asignado no funcionara como contador. Si te diese problemas dale un valor inicial de 0, si te funciona bien no hay problema.
Un saludo.
Muy bien, tome en cuenta sus comentarios y replantee el codigo entero. Lo tengo que hacer con funciones y pues le agregue la funcion pero funciona igual. El codigo ahora me compila, me ejecuta y me hace el proceso que quiero, pero me imprime un dato extra innecesario al final, podrian decirme en que linea tengo el error para que no imprima ese otro dato? Les presento el codigo.
#include <iostream>
using namespace std;
void procedimiento(int a[]){
int contador[20] = {0};
int x;
int i;
//LLENAMOS LA VARIABLE CONTADOR DE LOS NUMEROS INGRESADOS PARA DESPUES REVISARLOS
for (i = 0; i <= 20; i++)
{
for (x = 0; x <= 20; x++)
{
if (a[i] == x)
{
contador[x]++;
}
}
}
//CON ITERACIONES REVISAMOS LOS NUMEROS PARA VER CUANTAS VECES SE REPITIERON
for (i = 0; i <= 20; i++)
{
if (contador[i] != 0)
{
if (contador[i] == 1)
{
//NO HAGO NADA PORQUE EL NUMERO SOLO SE REPITE UNA VEZ
}
else
{
//IMPRIMO CUANTAS VECES SE REPITE UN NUMERO INGRESADO
cout << i << " se repite " << contador[i] << " veces" << endl;
}
}
}
}
int main(){//INICIO DEL PROGRAMA
int vector[20];
int a;
int posicion = 1;
//LLENAMOS EL VECTOR CON 20 NUMEROS QUE SE INGRESEN
for(a=0; a < 20; a++){
cout << "Ingresa el numero de la posicion " << posicion++ << endl;
cin >> vector[a];
}
//LLAMAMOS A UNA FUNCION
procedimiento(vector);
//TECLAZO
cin.get();
return 0;
}//FIN DEL PROGRAMA
El programa imprime al final de los resultados deseados algo innecesario, se los muestro:
(http://i60.tinypic.com/2vcg808.png)
En la parte donde dice 20 se repite tantas veces... Podrian ayudarme? Gracias!!
#include <iostream>
using namespace std;
void procedimiento(int a[]){
int contador[20] = {0};
int x;
int i;
//LLENAMOS LA VARIABLE CONTADOR DE LOS NUMEROS INGRESADOS PARA DESPUES REVISARLOS
for (i = 0; i < 20; i++)
{
for (x = 0; x < 20; x++)
{
if (a[i] == x)
{
contador[x]++;
}
}
}
//CON ITERACIONES REVISAMOS LOS NUMEROS PARA VER CUANTAS VECES SE REPITIERON
for (i = 0; i < 20; i++)
{
if (contador[i]>1)
{
cout << i << " se repite " << contador[i] << " veces" << endl;
}
}
}
int main(){//INICIO DEL PROGRAMA
int vector[20];
int a;
int posicion = 1;
//LLENAMOS EL VECTOR CON 20 NUMEROS QUE SE INGRESEN
for(a=0; a < 20; a++){
cout << "Ingresa el numero de la posicion " << posicion++ << endl;
cin >> vector[a];
}
//LLAMAMOS A UNA FUNCION
procedimiento(vector);
//TECLAZO
cin.get();
return 0;
}//FIN DEL PROGRAMA
Salida:
byakko@linuxblade ~/Programas $ g++ -o programa elhacker.net.c
byakko@linuxblade ~/Programas $ ./programa
Ingresa el numero de la posicion 1
1
Ingresa el numero de la posicion 2
1
Ingresa el numero de la posicion 3
1
Ingresa el numero de la posicion 4
1
Ingresa el numero de la posicion 5
2
Ingresa el numero de la posicion 6
3
Ingresa el numero de la posicion 7
4
Ingresa el numero de la posicion 8
5
Ingresa el numero de la posicion 9
6
Ingresa el numero de la posicion 10
7
Ingresa el numero de la posicion 11
8
Ingresa el numero de la posicion 12
9
Ingresa el numero de la posicion 13
10
Ingresa el numero de la posicion 14
0
Ingresa el numero de la posicion 15
0
Ingresa el numero de la posicion 16
0
Ingresa el numero de la posicion 17
12
Ingresa el numero de la posicion 18
12
Ingresa el numero de la posicion 19
15
Ingresa el numero de la posicion 20
21
0 se repite 3 veces
1 se repite 4 veces
12 se repite 2 veces
Wow muchas gracias someRandomCode!! No pude darme cuenta que era algo tan sencillo como eso! Una vez mas y gracias a todos los que siempre me respoden, me ayudan a mejorar!! ;-) colocare el tema como resuelto!! ;-)
No hay ningun problema :)
Por favor, tene a bien marcar el thread como resuelto para que gente con los mismos problemas tengan una referencia a una solucion :)