Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: BJM en 19 Octubre 2012, 18:19 pm



Título: Problema al mostrar posicion de un array
Publicado por: BJM en 19 Octubre 2012, 18:19 pm
El siguiente codigo se encarga de buscar el numero mayor de un array de enteros, luego al final cuando se muestra la posicion de origen donde se ubico ese valor, no es el correcto, y aqui el codigo:

Código
  1. #include<stdio.h>            
  2. #include<stdlib.h>
  3. #include<iostream>
  4. using namespace std;
  5.  
  6. main(){
  7.       int tem=0,may=0,pos=0,i,j,array[9];
  8.        for(i=0;i<10;i++){
  9.        cout<<"\n ingrese valor de array["<<i<<"]= ";
  10.        cin>>*(array+i);
  11.        }
  12.        for(i=0;i<9;i++){
  13.         for(j=i+1;j<10;j++){
  14.          if(*(array+i)>*(array+j)){
  15.              pos=i;                      
  16.           tem=*(array+i);           /*intercambio*/
  17.           *(array+i)=*(array+j);                      
  18.          *(array+j)=tem;
  19.          may=tem;                         /* asignacion */
  20.          }
  21.          else
  22.          pos=j;
  23.          may=*(array+j);
  24.  
  25.           }
  26.             }
  27.          cout<<"\n Valor mayor= "<<may<<" En la posicion array["<<pos<<"]";
  28.  
  29.          cout<<"\n\n";
  30.          system("pause");
  31.          }
  32.  


Título: Re: Problema al mostrar posicion de un array
Publicado por: ecfisa en 20 Octubre 2012, 05:02 am
Hola.

Si solo tenes que mostrar el mayor valor y su posición (índice) no es necesario realizar intercambio alguno.

Código
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.  int array[10];
  8.  
  9.  for(int i=0; i<10; i++)
  10.  {
  11.    cout << endl << "ingrese valor de array[" << i << "]= ";
  12.    cin >> array[i];
  13.  }
  14.  
  15.  int may=0, pos = 0;
  16.  for(int i=0; i<10; i++)
  17.    if (array[i] > may)  
  18.    {
  19.      may = array[i];
  20.      pos = i;
  21.    }
  22.  cout << endl << "Valor mayor= " << may << " En la posicion array[" << pos <<"]";
  23.  cout << endl << endl;
  24.  cin.get();
  25.  cin.get();
  26. }
  27.  

Saludos.


Título: Re: Problema al mostrar posicion de un array
Publicado por: avaquerotoba en 19 Diciembre 2018, 17:58 pm
Si pones pos = i, va a seguir estando mal ya que el array empieza en la posición 0 tendría que ser pos = i +1.