#include <stdio.h>
#define DIM 100
int maximo (int v[], int n);
int minimo (int v[], int n);
int main()
{
double v[DIM];
int numeroValores, i;
printf("Introduzca el número de valores a calcular:\n");
scanf("%d", &numeroValores);
printf("\n");
printf("Introduce los %d valores numéricos:\n", numeroValores);
for (i = 0; i < numeroValores; i++)
{
printf("Valor %d: ", i + 1);
scanf("%lf", &v[i]);
}
printf("maximo= %5.0lf \n" maximo (v, numeroValores));
printf("minimo= %5.0lf \n" minimo (v, numeroValores));
}
Estoy haciendo un programa en C para encontrar el maximo y el minimo valor dentro de una matriz, pero al compilarlo me pone que el máximo y el minimo siempre es 0, creo que el error esta en los printf antes de las funciones.
Espero que encuentren el error, gracias de antemano ^^
¡Buenas!
Tienes los prototipos de las funciones, pero te falta implementarlas...
¡Saludos!
Cita de: do-while en 30 Agosto 2013, 12:47 PM
¡Buenas!
Tienes los prototipos de las funciones, pero te falta implementarlas...
¡Saludos!
Perdon tuve un problema de copypaste y no copie el programa entero >.<
#include <stdio.h>
#define DIM 100
int maximo (int v[], int n);
int minimo (int v[], int n);
int main()
{
double v[DIM];
int numeroValores, i;
printf("Introduzca el número de valores a calcular:\n");
scanf("%d", &numeroValores);
printf("\n");
printf("Introduce los %d valores numéricos:\n", numeroValores);
for (i = 0; i < numeroValores; i++)
{
printf("Valor %d: ", i + 1);
scanf("%lf", &v[i]);
}
printf("maximo= %5.0lf \n" maximo (v, numeroValores));
printf("minimo= %5.0lf \n" minimo (v, numeroValores));
}
int minimo (int v[], int n)
{
int i;
double min;
min = v[0];
for (i = 1; i < n; i++)
if (v[i] < min)
min = v[i];
return (min);
}
int maximo (int v[], int n)
{
int i;
double max;
max = v[0];
for (i = 1; i < n; i++)
if (v[i] > max)
max = v[i];
return (max);
}
¡Buenas!
Lo mas gordo que se ve, y por esto no debería de compilar, es:
1: Dices que máximo y mínimo van a recibir vectores de enteros, pero les estás pasando un vector de double.
2: Dices que las dos funciones devuelven un valor entero, pero en printf estás utilizando el especificador de conversión de double.
3: En los dos últimos printf no has puesto la coma para separar los argumentos.
4: No se si me he dejado algo. :P
Cambia eso y nos cuentas.
¡Saludos!
PD: Vaya tirón de orejas que te iba a dar Angel Francés si te vieses haciendo esto... (o igual es Ricardo el que te da la asignatura).
"creo" que ya he arreglado lo que has dicho, ya no me saltan errores ni recomendaciones pero... a la hora de mostrarlo por pantalla me sigue saliendo max=0
min= 0
ahora realmente si que estoy perdida.
dejo la correccion:
#include <stdio.h>
#define DIM 100
int maximo (int v[], int n);
int minimo (int v[], int n);
int main()
{
int v[DIM];
int numeroValores, i;
printf("Introduzca el número de valores a calcular:\n");
scanf("%d", &numeroValores);
printf("\n");
printf("Introduce los %d valores numéricos:\n", numeroValores);
for (i = 0; i < numeroValores; i++)
{
printf("Valor %d: ", i + 1);
scanf("%lf", &v[i]);
}
printf("maximo= %5.0lf \n" , maximo (v, numeroValores));
printf("minimo= %5.0lf \n" , minimo (v, numeroValores));
}
int minimo (int v[], int n)
{
int i;
int min;
min = v[0];
for (i = 1; i < n; i++)
if (v[i] < min)
min = v[i];
return (min);
}
int maximo (int v[], int n)
{
int i;
int max;
max = v[0];
for (i = 1; i < n; i++)
if (v[i] > max)
max = v[i];
return (max);
}
PD: todos los programitas los hemos hecho con Richi xD, por casualidad ese tal angel es un tipo que siempre lleva una cantimplora?
¡Buenas!
No has cambiado los especificadores de conversión de printf. Siguen siendo los de double. Cambia eso y te dará el resultado correcto.
¡Saludos!
Al fin me sale el programa, el problema estaba en que tenia uno original en double, y al pasarlo a int tenia esos problemas -.-, bueno gracias por la ayuda :P :rolleyes: