Estoy aprendiendo a usar funciones y el caso es que ciertas funciones con punteros me resultan algo confusas, así que no sé si lo estoy haciendo bien.
El caso es que el programa funciona bien pero a la hora de meter numeros negativos, por ejemplo:
-10, 2, 4
Me reconoce como maximo el numero negativo (En este caso -10) y como minimo el 2.
El caso es que el programa funciona bien pero a la hora de meter numeros negativos, por ejemplo:
-10, 2, 4
Me reconoce como maximo el numero negativo (En este caso -10) y como minimo el 2.
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#define DIM 100
void leer_vector(int *, int);
void escribir_vector(int *, int);
void max_min_lista(int *, int, int *, int *);
int main(int argc, char *argv[])
{
int dim;
int vector[DIM];
int maximo, minimo;
printf("Introduzca la dimension del vector: ");
scanf("%d",&dim);
leer_vector(vector,dim);
printf("\n");
escribir_vector(vector, dim);
printf("\n");
max_min_lista(vector, dim, maximo, minimo);
printf("\n\n");
system("PAUSE");
return 0;
}
void leer_vector(int *v, int dim){
int i;
for(i=0;i<dim;i++){
printf("\nElemento (%d): ", i+1);
scanf("%d",&v[i]);
}
}
void escribir_vector(int *v, int dim){
int i;
for(i=0;i<dim;i++){
printf("%8d ", v[i]);
}
}
void max_min_lista(int *v, int dim, int *max, int *min){
int f, c;
min = v[0];
max = v[0];
for(f=0;f<dim;f++){
if(v[f] > max){
max = v[f];
} else if(v[f] < min){
min = v[f];
}
}
printf("Maximo: %d Minimo: %d", max, min);
}