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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Función con return de varias variables
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Función con return de varias variables  (Leído 2,080 veces)
Palante

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Función con return de varias variables
« en: 11 Febrero 2017, 02:02 am »

Hola, tengo el siguiente ejercicio de funciones en c:

Escribir una función que se le pase un vector N de números enteros y que devuelva el valor mayor, el
menor y la suma de los elementos del vector.

Código:
#include<stdio.h>

#define N 5;

int operaciones (int A[N] ) {
for (i=0; i<N;i++) {

operaciones.suma = suma +A[i]

operaciones.menor = if (A[i] < A[i]++) {

menor = A[i];

operaciones.mayor = if (A[i] > A[i]++) {

mayor = A[i];
}

return (operaciones);

}
int main (void) {

// No sé si voy por el camino correcto, encontré por una página web que para hacer un return de varias variables había que definir una estructura

typedefstruct {

int suma;
int mayor;
int menor;
}Toperaciones operaciones;

// y luego aquí los printf pero no sé si he acertado con la solución



¿Cómo lo ven?

Gracias


« Última modificación: 11 Febrero 2017, 02:04 am por Palante » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Función con return de varias variables
« Respuesta #1 en: 11 Febrero 2017, 02:29 am »

casi... vas aunque tu codigo es un desastre

lee bien sobre typedef y struct

el struct tiene que estar declarado antes deser usado (antes de la funcion que lo use)

la función debe retornar el struct(ergo, debe ser del tipo del struct



aislado al uso de struct hay otra solución para tu problema que son "parámetros por referencia" basicamente actuan como en scanf donde la variable que envías lo que hace es obtener el valor


por ejemplo

Código
  1. #include<stdio.h>
  2.  
  3. int funcion(int *n, int *m);
  4.  
  5. int main() {
  6.   int a, b;
  7.   a=2;
  8.   b=5;
  9.   printf("a = %i, b = %i\n", a, b);
  10.   int c = funcion(&a, &b);
  11.   printf("a = %i, b = %i, c = %i", a, b, c);
  12.   return 0;
  13. }
  14. int funcion(int *n, int *m){
  15.   *n = (*n)*(*n);
  16.   *m = (*m)*(*n);
  17.   return (*m)+(*n);
  18. }


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:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines