Ayuda en este programa

Iniciado por Xcution, 1 Diciembre 2013, 23:10 PM

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

Xcution

Hola, ¿Qué tal?. Necesito su debida ayuda en este programa

#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

DaniPhii

Yo probaría a declarar otra variable para almacenar la suma.
Hace mucho que no programo. :$

dato000

#2
No necesitas la libreria math.h, se usa para operaciones más complejas como potencias y raices.



#include <stdio.h>

int main()
{
//programa que recive N numeros hasta esribir 0 y les hace un promedio
int n=0, c;   //n numeros, c contador
          int auxiliar;   // variable para acumular lo que escribe el usuario
while (n != 0)
{
printf("Por favor ingrese un numero para promediar, cuando este sea 0 se para de pedir\n");
scanf("%d", &aux);
c++;
                     n += aux; // es como escribir n = n + aux;
                   
}

n = n/c; // promediamos y sacamos el resultado en pantalla
          printf("El total es:   %d", n);
          getchar();  // para no llamar system(PAUSE) que es un adefecio interrumpir el sistema totalmente
return 0;
}


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



xaps

Cita de: 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.



#include <stdio.h>

int main()
{
//programa que recive N numeros hasta esribir 0 y les hace un promedio
int n=0, c;   //n numeros, c contador
          int auxiliar;   // variable para acumular lo que escribe el usuario
while (n != 0)
{
printf("Por favor ingrese un numero para promediar, cuando este sea 0 se para de pedir\n");
scanf("%d", &aux);
c++;
                     n += aux; // es como escribir n = n + aux;
                   
}

n = n/c; // promediamos y sacamos el resultado en pantalla
          printf("El total es:   %d", n);
          getchar();  // para no llamar system(PAUSE) que es un adefecio interrumpir el sistema totalmente
return 0;
}


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
"The programmers of tomorrow are the wizards of the future" - Gave Newel

leosansan

#4
Cita de: xaps en  5 Diciembre 2013, 19:32 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 (cpp) [Seleccionar]
#include <stdio.h>

int main()
{
//programa que recibe  numeros hasta esribir 0 y les hace un promedio
int aux=1, c=-1;   //aux numeros, c contador
       float n=0;   // variable para acumular lo que escribe el usuario, osea la suma
while (aux != 0)
{
   printf("Dame el valor, 0 para acabar: ");
   scanf("%d", &aux);
   c++;
           n += aux; // es como escribir n = n + aux;
}
n = n/c; // promediamos y sacamos el resultado en pantalla
       printf("El promedio es:   %g", n);
       getchar();  // para no llamar system(PAUSE) que es un adefesio interrumpir el  sistema totalmente ...
       //sobra en general ....a no ser que uses DevC++ ....
return 0;
}


Saluditos! .....