[C con Clase] array

David Reza l.fix3r.l en gmail.com
Jue Mayo 15 17:19:15 CEST 2008


luchito tu amigo escribió:

>  De antemano agredecer a los nmoderadores por la yuda que me dieron en
> anteriores ejerccios.
>
> Ahora quisiera que me ayuden con el siguiente codigo. Lo quiero hacer es
> encontrar cuantos elementos se repiten en un array por ejemplos tengo el
> siguiete arrary de elementos 5, 8, 9, 5 y 6 todos estos elemenstos son
> ingresados por teclado.
> Lo quiero reportar en pantalla es ("hay dos elementos repetidos") que
> vendrian a hacer los dos cincos.
>
> #include<iostream.h>
> #include<conio.h>
>  main()
> {
>  int A[30];
>  int n,i;
>  int rep=0, to;
>  {
>   cout<<"Ingrese el numero de datos";
>   cin>>n;
>  }
>
>  for(i=0;i<=n;i++)
>

Primero que nada, en la condición del for debería ser ' i<n ', ya que los
subíndices de un arreglo van desde  0 hasta n-1.


>
>  {
>   cout<<"A["<<i+1<<"]=";
>   cin>>A[i];
>   cout<<endl;
>
>  }
>
>  int j=1;
>  for(i=0;i<=n;i++)
>  {
>
>   if(A[i]!=A[j])
>


Aquí 'j' vale 1, A[j] es igual a A[1], el cual a su vez es igual al segundo
número que el usuario tecleó; en tu ejemplo sería el 8. Sinceramente no
entiendo que tratas de hacer, ya que estás comparando todos los elementos
del array con el segundo elemento. El resto del código no te funciona.

Lo que yo haría sería:

...
int i,j,n,numRepetidos=0, numNoRepetidos;
...
for(i=0; i<n;i++)
{
  for(j=0;j<n;j++)
    while( i<j )
       if(A[i] == A[j])
           numRepetidos++;
}
numNoRepetidos = n - numRepetidos;

cout << "Hay " << numRepetidos << " números repetidos" << endl;
cout << "Y " << numNoRepetidos << "números no repetidos";

Espero que esto te ayude. Saludos
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080515/e12b24ff/attachment.html>


Más información sobre la lista de distribución Cconclase