Función con return de varias variables

Iniciado por Palante, 11 Febrero 2017, 02:02 AM

0 Miembros y 1 Visitante están viendo este tema.

Palante

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.


#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

engel lex

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

#include<stdio.h>

int funcion(int *n, int *m);

int main() {
   int a, b;
   a=2;
   b=5;
   printf("a = %i, b = %i\n", a, b);
   int c = funcion(&a, &b);
   printf("a = %i, b = %i, c = %i", a, b, c);
   return 0;
}
int funcion(int *n, int *m){
   *n = (*n)*(*n);
   *m = (*m)*(*n);
   return (*m)+(*n);
}
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.