Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/11/2017, 11:06
marodal
 
Fecha de Ingreso: noviembre-2008
Ubicación: Sevilla
Mensajes: 157
Antigüedad: 16 años
Puntos: 2
Respuesta: Incluir ficheros de cabecera en C

Hola,
Gracias por contestar.

La pregunta es genérica, no importa mucho el código, pero ahí va:

Código:
#include <stdio.h>
#include "ordenacion.c"
float media(int*,int);
int maximo(int*,int);
int minimo(int*,int);
float semisuma(int,int);
void main (void){
	
	int num_valores;
	int i,num;
	int array[10];
	printf ("Introduce el numero de valores con los que desea trabajar, menor o igual que 10\n");
	scanf("%d",&num_valores);
	
	for (i=0; i<num_valores; i++){
		
		printf ("Introduce el valor de la posicion %d\n", i);
		scanf ("%d",&num);
		array[i]=num;
	}
	int maximo_valor = maximo(array,num_valores);
	int minimo_valor = minimo(array,num_valores);
	float valor_semisuma = semisuma(maximo_valor,minimo_valor);
	
	printf ("La media de los valores introducidos es %.2f\n", media(array,num_valores));
	printf ("El máximo de los valores introducidos es %d\n", maximo_valor);
	printf ("El mínimo de los valores introducidos es %d\n", minimo_valor);
	printf ("El valor de la semisuma de los valores maximo y minimo es %.2f\n", valor_semisuma);
}

float media (int *array, int size){
	
	int suma=0;
	int i;
	for (i=0; i<size; i++){
		suma += array[i];
	}
	
	return (float)suma/(float)size;
}
int maximo (int *array, int size){
	metodo_insercion(array,size);
	
	return array[size-1];
}
int minimo (int *array, int size){
	metodo_burbuja(array,size);
	
	return array[0];
}
float semisuma (int maximo, int minimo){
	return ((float)maximo + (float)minimo)/2;
}
Los dos métodos señalados, están implementados en el fichero ordenacion.c, que incluyo arriba.
También tengo en el mismo directorio, un ordenacion.h, con el prototipo de las funciones implementadas en ordenación.c.
El código funciona bien tal cual lo he posteado. En cambio, si incluyo ordenación.h, en lugar de ordenación.c, tengo los siguientes errores:

Código:
C:\Users\marodal\AppData\Local\Temp\ccQjHnu6.o	Ejercicio3.c:(.text+0x1ab): undefined reference to `metodo_insercion'
C:\Users\marodal\AppData\Local\Temp\ccQjHnu6.o	Ejercicio3.c:(.text+0x1e4): undefined reference to `metodo_burbuja'
¿Alguna idea de cual es el problema?
Gracias