Elaborar un programa que pida 4 numeros por teclado y muestre cual es el segundo mayor
Ej: Si A=-1 B=-2 C=-3 D=-45 entonces mostrara "El segundo mayor es -2"
Ej: Si A=1 B=2 C=3 D=3 entonces mostrara "El segundo mayor es 2"
Ej: Si A=10 B=1-0 C=10 D=10 entonces mostrara "No existe segundo mayor"
(SOLO puede existir ALGUNA de las siguientes palabras en el codigo de la solucion DOS VECES IF, WHILE , REPEAT)
ayudaaaa!!!!!!!!... yo me lo sabia a puros if :"(
Respuestas a la pregunta
Respuesta:
program SegundoMayor_De4Numeros;
var
Numeros: ARRAY[1..4] OF integer;
Copia_Numeros: ARRAY[1..4] OF integer;
i: integer;
Mayor: integer;
Mayor2: integer;
begin
{Pedimos los numeros y los guardamos en el arreglo}
i := 1;
while i <= 4 do
begin
write( 'Ingrese el numero ', i, ': ' );
readln( Numeros[i] );
i := i + 1;
end;
{Ahora buscamos el mayor}
Mayor := Numeros[1];
i := 2;
while i <= 4 do
begin
if Numeros[i] > Mayor then
begin
Mayor:=Numeros[i];
end;
i := i + 1;
end;
{Hacemos una copia del arreglo quitando al mayor}
i := 1;
while i <= 4 do
begin
Copia_Numeros[i] := Numeros[i];
if Copia_Numeros[i] = Mayor then
begin
Copia_Numeros[i] := -999;
end;
i := i + 1;
end;
Mayor2 := Copia_Numeros[1];
i := 2;
while i <= 4 do
begin
if Copia_Numeros[i] > Mayor2 then
begin
Mayor2 := Copia_Numeros[i];
end;
i := i + 1;
end;
writeln('El numero mayor es: ', Mayor);
writeln('El segundo numero mayor es: ', Mayor2);
end.
Explicación:
Perdón la demora, no funcionaba para numeros negativos mmm pero creo que ya.