#include <stdio.h>#include <math.h>int main(int argc, char **argv){ int x, max= 0, min= 0, cant, y; printf("\n Cuantos valores piensa introducir?: "); scanf("%d", &cant); for(y= 1; y<=cant; y++){ printf("Introduzca los números: "); scanf("%d", &x); } if(x>max){ max= x; printf("\n El valor maximo es %d", max); } if(min<max){ min= max; printf("\n El valor minimo es %d", min); } return 0;}
Eso te esta pasando porque los numeros que vas a comprobar como menores y mayores los estas guardando siempre en 'x'. Lo que significa que siempre te va a quedar el ultimo valor introducido. Por ese motivo al agregar "1, 2, 3, 4, 5" te muestra 5 como maximo y minimo porque es el ultimo valor agregado.Lo que podrias hacer es ir guardando los valores introducidos en un array y luego recorrerlo y preguntandose si es mayor y menor.O directamente dentro del primer for cuando introducis los valores ir haciendose las preguntas de si es mayor o menor que las variables max y min e ir guardando segun corresponda.Espero que se entienda.Saludos
#include <stdio.h>#include <math.h>int main(int argc, char **argv){ int x, max= 0, min= 0, cant, y; printf("\n Cuantos valores piensa introducir?: "); scanf("%d", &cant); for(y= 1; y<=cant; y++){ printf("Introduzca los números: "); scanf("%d", &x); if(x>max){ max= x; } if(x<max){ min= x; } } printf("\n El valor maximo es %d", max); printf("\n El valor minimo es %d", min); return 0;}
Buenisimo, pero aun tengo un presentimiento que algo hay que modificar. Lo probaste con la misma lista anterior "1, 2, 3, 4, 5" y te dio bien el resultado?Si no me equivoco con 1,2,3,4,5 te da min = 0 max = 5 y es erroneo.
#include <stdio.h>#include <math.h>int main(int argc, char **argv){ int x, max= 0, min= 0, cant, y; printf("\n Cuantos valores piensa introducir?: "); scanf("%d", &cant); for(y= 1; y<=cant; y++){ printf("Introduzca los números: "); scanf("%d", &x); if(x>max){ max= x; } if(x<max){ min= x; <---- acá no toma el valor minimo de la x } } printf("\n El valor maximo es %d", max); printf("\n El valor minimo es %d", min+1); return 0;}
Lo suponia, eso se debe a que a la variable min la seteaas con un valor 0.Lo que significa que para que sea modificado tiene que ser comparado con un valor negativo.Solucion? Ponerle un numero por defecto grande a la variable min. Si le pones un valor 9999 por ejemplo siempre y cuando todos los valores no superen ese numero las comparaciones van a ser ciertas.Saludos
#include <stdio.h>#include <math.h>int main(int argc, char **argv){ int x, max= 0, min= 9999, cant, y; printf("\n Cuantos valores piensa introducir?: "); scanf("%d", &cant); for(y= 1; y<=cant; y++){ printf("Introduzca los números: "); scanf("%d", &x); if(x>max){ max= x; } if(x<min){ min= x; } } printf("\n El valor maximo es %d", max); printf("\n El valor minimo es %d", min); return 0;}
#include <stdio.h>int main(){ int i,max,min,num,tot; printf("Total de números que introducirá: "); scanf("%d",&tot); printf("Introduzca los números: "); scanf("%d",&num); max = min = num; for(i=1; i < tot; i++){ scanf("%d",&num); if(num>max){ max = num; } if(num<min){ min = num; } } printf("\nEl valor maximo es %d",max); printf("\nEl valor minimo es %d\n",min); return 0;}