Autor Tema: Ayuda para armar un algoritmo con máximos y mínimos

0 Usuarios y 1 Visitante están viendo este tema.

13 Septiembre, 2011, 08:22 pm
Leído 1502 veces

eze32

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 121
  • Karma: +0/-0
  • Sexo: Masculino
Hola me piden ingresar un valor \( k\leq{200} \). Ingresar a continuación los k valores de longitud expresadas en mts. Se pide determinar e informar:
a)El valor del menor valor
b) la ubicación del mayor valor
c)el rango de variaciones de las longitudes (máximo-mínimo)
d)si hay varios valores iguales al máximo indicar la cantidad (borre de contador).

Bueno mi duda es que el primer valor k tiene que ser menor o igual a 200 lo que hago es poner la ese valor fuera del for? lo hago con un if o no?y los demas k dentro del for?

En el punto c) el rango ese lo pongo dentro del for o fuera?
Y en el punto d) como hago para determinar si hay iguales valores? como se hace un borre de contador?

18 Septiembre, 2011, 05:24 pm
Respuesta #1

mathtruco

  • Moderador Global
  • Mensajes: 5,598
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
Hola me piden ingresar un valor \( k\leq{200} \). Ingresar a continuación los k valores de longitud expresadas en mts.

(...)

Lo que entiendo del enunciado es que debes ingresar un valor \( k \) (entero entre 1 y 200) que corresponde al número de elementos (longitudes en metros) que se ingresarán.

Por ejemplo: \( k=17 \) indica que a continuación ingresarás 17 elementos, y cada elemento corresponde a una distancias (medida en metros). Esos 17 elementos son los que deberás comparar.


Si quieres puedes poner tus algoritmos (en pseudo código) y los ananlizamos, pero sólo indicando donde pondrías un for no se puede.

27 Septiembre, 2011, 10:41 pm
Respuesta #2

eze32

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 121
  • Karma: +0/-0
  • Sexo: Masculino
Lo que yo hice fue:
Código:

j=0
for(i=1;i<=200;i++)
{ pido el valor;
if(i==0 || valor <valormin)
{valormin=valor;}
if(i==1 || valor>valormax)
{valormax=valor;
orden=i; }
if(i==1 || valor==valormax1) //este es el para sacar si hay varios valores igauales al maximo //
{valormax1=valor;
j++;}
}



27 Septiembre, 2011, 10:47 pm
Respuesta #3

Héctor Manuel

  • Lathi
  • Mensajes: 3,701
  • País: mx
  • Karma: +0/-0
  • Sexo: Masculino
No entiendo:


for(i=1;i<=200;i++)
{ pido el valor;
if(i==0 || valor <valormin)
{valormin=valor;}
if(i==1 || valor>valormax)
{valormax=valor;
orden=i; }
if(i==1 || valor==valormax1) //este es el para sacar si hay varios valores igauales al maximo //
{valormax1=valor;
j++;}
}


Pero i nunca vale 0.

 

27 Septiembre, 2011, 11:48 pm
Respuesta #4

Héctor Manuel

  • Lathi
  • Mensajes: 3,701
  • País: mx
  • Karma: +0/-0
  • Sexo: Masculino
Analiza este código:

Código: [Seleccionar]
#include"stdio.h"
main(){
int k,i,j,r=1; float min, max;
printf("Introduce un numero\n");
scanf("%i",&k);
if(k>200)
printf("El numero %i es mayor a 200",k);
else if(k<=0)
printf("El numero %i es menor que 1",k);
else
printf("Daras una lista de %i datos\n", k);
float datos[200];
for(i=0;i<=k-1;i++)
scanf("%f",&datos[i]);
printf("Los %i datos son:\n",k);
for(i=0;i<=k-1;i++)
printf("El dato %i es %f\n",i+1,datos[i]);
min=datos[1];
max=datos[1];
for(i=0;i<=k-1;i++)
if(min>datos[i])
min=datos[i];
for(i=0;i<=k-1;i++)
if(max<datos[i])
max=datos[i];
j=i;
r=r++;
printf("El menor dato es %f.  El mayor valor es %f y es el dato numero %i y se repite %i veces. El rango de variacion es %f", min,max,j,r,max-min);
}

Por cierto, nota que para escribir códigos debes usar las etiquetas \( \mbox{[code]c\ódigo a escrbir[/code]} \)