Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Xcution en 1 Diciembre 2013, 23:10 pm



Título: Ayuda en este programa
Publicado por: Xcution en 1 Diciembre 2013, 23:10 pm
Hola, ¿Qué tal?. Necesito su debida ayuda en este programa

Código:
#include <stdio.h>
#include <math.h>
int main()
{
//programa que recive N numeros hasta esribir 0 y les hace un promedio
int n, c;//n numeros, c contador
while (n != 0)
{
printf("Por favor ingrese un numero para promediar, cuando este sea 0 se para de pedir\n");
scanf("%d", &n);
c++;
}
n == n + n;
n = n/c;
return 0;
}

Quiero que todos se sumen en n.. :l


Título: Re:
Publicado por: DaniPhii en 1 Diciembre 2013, 23:18 pm
Yo probaría a declarar otra variable para almacenar la suma.
Hace mucho que no programo. :$


Título: Re: Ayuda en este programa
Publicado por: dato000 en 2 Diciembre 2013, 01:41 am
No necesitas la libreria math.h, se usa para operaciones más complejas como potencias y raices.

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6. //programa que recive N numeros hasta esribir 0 y les hace un promedio
  7. int n=0, c;   //n numeros, c contador
  8.           int auxiliar;   // variable para acumular lo que escribe el usuario
  9. while (n != 0)
  10. {
  11. printf("Por favor ingrese un numero para promediar, cuando este sea 0 se para de pedir\n");
  12. scanf("%d", &aux);
  13. c++;
  14.                      n += aux; // es como escribir n = n + aux;
  15.  
  16. }
  17.  
  18. n = n/c; // promediamos y sacamos el resultado en pantalla
  19.           printf("El total es:   %d", n);
  20.           getchar();  // para no llamar system(PAUSE) que es un adefecio interrumpir el sistema totalmente
  21. return 0;
  22. }

aunque si lo quieres con decimales, mejor usar variables coma flotante float


Título: Re: Ayuda en este programa
Publicado por: xaps en 5 Diciembre 2013, 19:32 pm
No necesitas la libreria math.h, se usa para operaciones más complejas como potencias y raices.

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6. //programa que recive N numeros hasta esribir 0 y les hace un promedio
  7. int n=0, c;   //n numeros, c contador
  8.           int auxiliar;   // variable para acumular lo que escribe el usuario
  9. while (n != 0)
  10. {
  11. printf("Por favor ingrese un numero para promediar, cuando este sea 0 se para de pedir\n");
  12. scanf("%d", &aux);
  13. c++;
  14.                      n += aux; // es como escribir n = n + aux;
  15.  
  16. }
  17.  
  18. n = n/c; // promediamos y sacamos el resultado en pantalla
  19.           printf("El total es:   %d", n);
  20.           getchar();  // para no llamar system(PAUSE) que es un adefecio interrumpir el sistema totalmente
  21. return 0;
  22. }

aunque si lo quieres con decimales, mejor usar variables coma flotante float

Este código no funcionaria, puesto que inicializas n=0 y la condición para entrar al cuerpo del bucle es que n!=0. En vez de inicializarla en 0, hay que leer el primer valor antes de entrar en el bucle.

Saludos


Título: Re: Ayuda en este programa
Publicado por: leosansan en 5 Diciembre 2013, 20:24 pm
Este código no funcionaria, puesto que inicializas n=0 y la condición para entrar al cuerpo del bucle es que n!=0. En vez de inicializarla en 0, hay que leer el primer valor antes de entrar en el bucle.

Saludos

El problema no es n=0 ya que es la variable suma - manía de no llamar a las cosas por su nombre.-  sino que la variable aux  - que no auxiliar, otro error-  debe iniciarla con cualquier valor distinto de cero, así como tampoco está inicializada la variable c.Amén de declarar n como float si lo que se requiere es en verdad el promedio, vamos con sus decimales y todo.

Y lo dejo cuasi como estaba, aunque no me gusta ni pizca:


Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. //programa que recibe  numeros hasta esribir 0 y les hace un promedio
  6. int aux=1, c=-1;   //aux numeros, c contador
  7.        float n=0;   // variable para acumular lo que escribe el usuario, osea la suma
  8. while (aux != 0)
  9. {
  10.    printf("Dame el valor, 0 para acabar: ");
  11.    scanf("%d", &aux);
  12.    c++;
  13.            n += aux; // es como escribir n = n + aux;
  14. }
  15. n = n/c; // promediamos y sacamos el resultado en pantalla
  16.        printf("El promedio es:   %g", n);
  17.        getchar();  // para no llamar system(PAUSE) que es un adefesio interrumpir el  sistema totalmente ...
  18.        //sobra en general ....a no ser que uses DevC++ ....
  19. return 0;
  20. }
  21.  

Saluditos! .....