elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Devolver un arreglo o vector desde una funcion.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Devolver un arreglo o vector desde una funcion.  (Leído 4,076 veces)
MartNahuel95

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Devolver un arreglo o vector desde una funcion.
« en: 10 Junio 2016, 03:54 am »

Tengo creada una función que ordena un arreglo de forma ascendente.
Ahora necesito que esa función me regrese el arreglo ordenado para seguir usándolo en el main().

Código:
#include<stdio.h>

  int ordenar_vector(int V[],int a){
    int aux=0,i,j;
  for(i=0; i<a; i++){
for(j=0; j<a-1; j++){
if(V[j]>V[j+1]){
        aux=V[j];
V[j]=V[j+1];
V[j+1]=aux;
}
}
  }

  }


int main(){
int L=0;
printf("\nCuantos elementos desea que tengo el vector:");
scanf("%d",&L);
int V[L];
printf("\n\nIngrese los elementos del vector:\n");
for(int i=0;i<L;i++){
scanf("%d",&V[i]);
}


}

Esto no funciona simplemente poniéndole un return V al final de la función y guardar en el main() asi:
Código:
int vector_ordenado[L];
vector_ordenado=ordenar_vector(V[],L);


En línea

MartNahuel95

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Devolver un arreglo o vector desde una funcion.
« Respuesta #1 en: 10 Junio 2016, 04:04 am »

ouch, lo siento mucho, ya pude solucionarlo. No sé si algún moderador puede eliminar el tema o?.

En todo caso, dejo el código solucionado (a alguien le servirá):

Código:
#include<stdio.h>

int* ordenar_vector(int V[],int a){
  int aux=0,i,j;
  for(i=0; i<a; i++){
for(j=0; j<a-1; j++){
if(V[j]>V[j+1]){
       aux=V[j];
V[j]=V[j+1];
V[j+1]=aux;
}
}
}
return V;
  }


int main(){
int L=0;
printf("\nCuantos elementos desea que tengo el vector:");
scanf("%d",&L);
int V[L];
printf("\n\nIngrese los elementos del vector:\n");
for(int i=0;i<L;i++){
scanf("%d",&V[i]);
}

int *Z=ordenar_vector(V,L);
for(int i=0;i<L;i++){
printf("%d",Z[i]);
}

}

De igual manera, me gustaría entender ¿por qué tuve que poner el asterisco de puntero luego del int en mi función y declarar mi variable Z como puntero?


« Última modificación: 10 Junio 2016, 04:09 am por MartNahuel95 » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Devolver un arreglo o vector desde una funcion.
« Respuesta #2 en: 10 Junio 2016, 04:09 am »

no es renecesario el return, recomiendo leer un poco mas sobre c... cuando pasas array a una funcion pasas la dirección de momeria (se pasa por referencia) así que lo que haga la funcion afecta al array pasado

ej en c++
Código
  1. #include<iostream>
  2. void cambiar(int V[], int e){
  3. int i;
  4. for (i=0;i<e;i++)
  5. V[i]*=7;
  6. }
  7.  
  8.  
  9. int main(){
  10.  int V[10];
  11.  int i;
  12.  for (i=0;i<10;i++)
  13.   V[i]=i;
  14.  
  15.  for (i=0;i<10;i++)
  16.   std::cout << V[i] << std::endl;
  17.  
  18.  cambiar(V,10);  
  19.  for (i=0;i<10;i++)
  20.   std::cout << V[i] << std::endl;
  21.  
  22.  
  23. }



y no, no se tiene que eliminar el tema... el foro no es un sistema de atención al cliente... es un registro de conocimientos para que cualquiera con dudas similares consiga en internet y pueda ver información al respecto
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Devolver un vector en una funcion
Programación C/C++
d00ze13 5 25,173 Último mensaje 12 Enero 2011, 09:41 am
por leogtz
devolver un arreglo en orden inverso
Desarrollo Web
01munrra 0 1,795 Último mensaje 11 Diciembre 2012, 21:05 pm
por 01munrra
Ayuda devolver un vector de una funcion
Programación C/C++
kur79 1 2,072 Último mensaje 28 Octubre 2014, 19:07 pm
por avesudra
Pasar a función un arreglo con punteros o con el nombre del arreglo como puntero
Programación C/C++
NOB2014 3 3,414 Último mensaje 9 Junio 2016, 17:10 pm
por geeke
Error al retornar un vector desde una funcion
Programación C/C++
cNoob 2 2,243 Último mensaje 28 Diciembre 2017, 13:12 pm
por cNoob
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines