Elaborar un programa que pida 4 números 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"
(NO SE PUEDE USAR FOR,
ADEMAS CONSIDERANDO QUE EL IF , WHILE , REPEAT TIENE COMO PARTE DE SU ESTRUCTURA EN EL DIAGRAMA DE FLUJO EL ROMBO
SOLO PUEDE USAR MAXIMO DOS VECES AQUELLAS SENTENCIAS QUE USEN ROMBO
DICHO DE OTRA FORMA SU CODIGO VISTO DE CUALQUIER LUGAR SOLO PUEDE TENER UN:
IF Y WHILE O IF Y IF O WHILE Y REPEAT O WHILE Y WHILE O REPEAT O REPEAT O REPEAT Y 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:
ESPERO TE AYUDE :)