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
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);
}