D.A.I (Trassierra, Córdoba)
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

D.A.I (Trassierra, Córdoba)

D.A.I (Trassierra, Córdoba)
 
ÍndiceÍndice  Últimas imágenesÚltimas imágenes  BuscarBuscar  RegistrarseRegistrarse  ConectarseConectarse  

 

 Ejercicio nº 15 en C.

Ir abajo 
2 participantes
AutorMensaje
JoseCJ
Aprendiz de foro
Aprendiz de foro



Cantidad de envíos : 10
Fecha de inscripción : 28/10/2008

Ejercicio nº 15 en C. Empty
MensajeTema: Ejercicio nº 15 en C.   Ejercicio nº 15 en C. Icon_minitimeSáb Nov 01, 2008 11:06 am

/* Nombre de Programa:
Autor:
fecha:
Descripcion:

*/

#include
#include
main()
{
int nmayor,nmenor,numero,suma,contador,contadorneg,media;
contador=0,suma=0,contadorneg=0;
do{

printf("Introduce un numero:");
scanf("%d",&numero);
if(numero<0 and numero!=0){
contadorneg=contadorneg+1;
}
if(contador==0){
nmayor=numero;
nmenor=numero;
}
else if(numero>nmayor and numero!=0){
nmayor=numero;
}
else if(numero nmenor=numero;
}
if(numero!=0){
contador=contador+1;
}
suma=suma+numero;
}while(numero!=0);


media=suma/contador;
printf("El mayor de los numeros introducidos es:%d\n",nmayor);
printf("El menor de los numeros introducidos es:%d\n",nmenor);
printf("La media de todos los numeros es:%d\n",media);
if (contadorneg>0){
printf("Hay numeros negativos.");
}


Pues eso, que aquí os dejo el ejercicio nº15(del grupo de Salva). Aviso que es "de cosecha propia" y seguramente haya pasos que podais modificar y conseguir así un programa más sencillo y algo más corto, pero hasta ahora es lo mejor que puedo dar de mi.

P.D.: Hay ciertas cosas que no me gustan del programa como recurrir a un contador para que me visualice el "hay números negativos" o el tener que andar colocando el "and numero!=0" en cada "if" para que no me lo tome como mayor/menor y/o me lo sume al divisor de la media. Si alguien puede modificarlo, se admiten sugerencias.
Volver arriba Ir abajo
Admin
Admin
Admin



Cantidad de envíos : 40
Fecha de inscripción : 24/10/2008

Ejercicio nº 15 en C. Empty
MensajeTema: Ejercicio de Jose, corregido por Admin   Ejercicio nº 15 en C. Icon_minitimeSáb Nov 01, 2008 12:54 pm

/* Nombre de Programa:
Autor: Jose Cruz
fecha:
Descripcion:
Programa hecho por Jose Cruz y corregido por Javier Aguilera Gómez
Las correcciones están como comentarios


*/

#include 
#include 
main()
{
int nmayor,nmenor,numero,suma,contador,contadorneg;
float media;//Hago float en media(en vez de entero) para que muestre decimales
contador=0,suma=0,contadorneg=0;
do{

   printf("Introduce un numero:\n");//añado \n para que mejore en lo visual
   scanf("%d",&numero);
   if(numero<0 and numero!=0){
               contadorneg=contadorneg+1;
   }
   if(contador==0){
                  nmayor=numero;
               nmenor=numero;
   }
   else if(numero>nmayor and numero!=0){
                 nmayor=numero;
   }
   else if(numero                   nmenor=numero;
   }
   if(numero!=0){
                   contador=contador+1;
                   suma=suma+numero;/*Esta suma debe hacerse solo cuando numero!=0*/
   } 

}while(numero!=0);
if (contador!=0)/*Esto si era un verdadero error. Si introducias en tu programa como primer valor 
                un 0 daba un error de sistema. Con este if ya no sucede, mira también el else 
            final que muestra un mensaje si no existen valores*/
{
media=(float)suma/(float)contador;/*Si no pones float en denominador
                                   y numerador no obtiene decimales, conclusión
                           tiene que hacer float/float para obtener
                           float, no int/int para obtener float*/
printf("El mayor de los numeros introducidos es:%d\n",nmayor);
printf("El menor de los numeros introducidos es:%d\n",nmenor);
printf("La media de todos los numeros es:%f\n",media);//pongo %f para que muestre decimales
if (contadorneg>0){
printf("Hay numeros negativos.\n");//añado \n para mejorar en lo visual
}
}else printf("No has introducido ningun valor\n");
system("pause");/*No pusiste el pause, pero no modifica el funcionamiento. Es solo algo visual*/
}            /*si lo ejecutas en modo msdos: poniendo CMD en ejecutar en menu inicio, no necesitas PAUSE.



El programa funciona perfectamente Jose, excepto esas tonterías que te he puesto. Revísalas y luego ejecútalo para que veas las diferencias con el tuyo.
El único valor que fallaba era introduciendo un 0 de primeras(daba error en windows), pero viene explicado como comentario dentro del código su corrección.
Le he pasado una batería de 250 numeros entre 1 y 50 y da resultados correctos(revisado con Excell de Office),
El lunes te digo como evitar eso de comprobar que no es 0 en todos los IF.
*/
Volver arriba Ir abajo
https://daitrassierra.foroes.org
 
Ejercicio nº 15 en C.
Volver arriba 
Página 1 de 1.
 Temas similares
-
» Ejercicio tipo C++
» Ejercicio 17 por fin modificado
» Ejercicio 15, por admin
» Ejercicio 10 en pseudocodigo
» Relacion de ejercicios de PMUL

Permisos de este foro:No puedes responder a temas en este foro.
D.A.I (Trassierra, Córdoba) :: PLE :: Código dudas/sugerencias-
Cambiar a:  
Ante la inminente, lenta, cercana e inexorable finalización de su vida útil. Propongo la plataforma: !Salvemos al foro! Salvando el foro estás contribuyendo en la lucha del cambio climático, en la reproducción del lince ibérico, salvas la amazonia y con cada visita estás alimentando a un pobre informático:

!Por un foro DAI para nuestros hijos!
Le quedan 20 dias al foro, !actúa!

Get your own Chat Box! Go Large!
Situación actual en cordoba aeropuerto

Free counter and web stats
Crear foro con ForoActivo | ©phpBB | Foro gratis de asistencia | Denunciar un abuso | Cookies | foro gratis