
Problema con acumulador
Publicado por Musiker (14 intervenciones) el 09/09/2011 11:45:13
Estoy haciendo un programa que genera "n" números aleatorios, mediante un contador muestra cuantos numeros mayores que 10 hay, y mediante un acumulador muestra los que son mayores de 10, pero hay un error al hacer ésto último.
El problema no sé si está en el acumulador o en el bucle for, pero no muestra los numeros mayores de 10. Lo he intentado de esta forma. ¿Alguien me podría ayudar? El programa está compilado en Borland C++ 4.5. Muchas gracias.
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
// "n" es el numero de numeros que el usuario desea que se generen.
// "v[i]" es el numero que sale cada vez.
// "i" muestra la posicion que ocupa cada numero (empezando desde 0).
// "cuantosmayores" es un contador que cuenta cuantos numeros mayores que 10 hay.
// "acummayores" es el acumulador que almacena los numeros que sean mayores que 10.
int main(void)
{
int *v, cuantosmayores=0;
int acummayores=0, n=0, i=0;
randomize();
printf("\n ***** N numeros 'aleatorios' ***** \n\n");
printf("\n ¿Cuantos numeros desea que se generen?: ");
scanf ("%d",&n);
fflush(stdin);
v = new int [n];
printf("\n\nLos %d numeros generados son:", n);
for (i=0; i<n; i++)
{
fflush(stdin);
v[i] = (rand() % 37);
printf(" %d", v[i]);
}
//Aquí empezamos a contarlos
for (i=0;i<n;i++)
{
if ( v[i] > 10 )
{
fflush(stdin);
cuantosmayores++;
acummayores=acummayores+i;
}
}//"FOR"
fflush(stdin);
printf ("\n\n\n\n *** Hay %d numeros mayores que 10 *** \n\n", cuantosmayores);
// Aqui se deben mostrar los numeros mayores que 10 acumulados anteriormente
fflush(stdin);
for (i=0;i<cuantosmayores;i++)
{
fflush(stdin);
printf ("\n\n Los numeros mayores que 10 son: %d", acummayores);
}
} //MAIN
El problema no sé si está en el acumulador o en el bucle for, pero no muestra los numeros mayores de 10. Lo he intentado de esta forma. ¿Alguien me podría ayudar? El programa está compilado en Borland C++ 4.5. Muchas gracias.
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
// "n" es el numero de numeros que el usuario desea que se generen.
// "v[i]" es el numero que sale cada vez.
// "i" muestra la posicion que ocupa cada numero (empezando desde 0).
// "cuantosmayores" es un contador que cuenta cuantos numeros mayores que 10 hay.
// "acummayores" es el acumulador que almacena los numeros que sean mayores que 10.
int main(void)
{
int *v, cuantosmayores=0;
int acummayores=0, n=0, i=0;
randomize();
printf("\n ***** N numeros 'aleatorios' ***** \n\n");
printf("\n ¿Cuantos numeros desea que se generen?: ");
scanf ("%d",&n);
fflush(stdin);
v = new int [n];
printf("\n\nLos %d numeros generados son:", n);
for (i=0; i<n; i++)
{
fflush(stdin);
v[i] = (rand() % 37);
printf(" %d", v[i]);
}
//Aquí empezamos a contarlos
for (i=0;i<n;i++)
{
if ( v[i] > 10 )
{
fflush(stdin);
cuantosmayores++;
acummayores=acummayores+i;
}
}//"FOR"
fflush(stdin);
printf ("\n\n\n\n *** Hay %d numeros mayores que 10 *** \n\n", cuantosmayores);
// Aqui se deben mostrar los numeros mayores que 10 acumulados anteriormente
fflush(stdin);
for (i=0;i<cuantosmayores;i++)
{
fflush(stdin);
printf ("\n\n Los numeros mayores que 10 son: %d", acummayores);
}
} //MAIN
Valora esta pregunta


0