Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

otro con vectores

  • Autor de tema Autor de tema celio
  • Fecha de inicio Fecha de inicio

celio

Bovino maduro
Desde
11 Ago 2007
Mensajes
239
Encontre este ejercicio propuesto

Guardar n numeros en un vector , calcular el promedio y reemplazar todos los numeros que ocupan las posiciones pares por el promedio calculado

El programa lo hice asi
Código:
#include <stdio.h>
#include <conio.h>
void main()
{

    int n,i,a[50],sum=0,prom,pos;
    printf("ingresar tamaño del vector");
    scanf("%d",&n);

    for(i=0;i<n;i++){
        printf("ingresar numero");
        scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++){
        sum = sum + a[i];

    }
    prom=sum/n;

    for(i=0;i<n;i++){
        if(i % 2 == 0){
            a[i]=prom;
            pos=i;
        }
    }
    a[pos]=prom;

    for(i=0;i<n;i++){
        printf("%d",a[pos]);
    }
}

Cuando lo ejecuto si coloco por ejemplo 12345 deberia colocar 12343 pero lo que hace es 3333 o sea reemplaza el promedio en todas la posiciones del vector
sabiendo que hice bien la pregunta if(i%2= =0)


Gracias
 
Al final estas imprimiendo el mismo valor n veces

Código:
for(i=0;i<n;i++)
{
     printf("%d",a[pos]);    
}
Deberia ser printf("%d",a[i]);
 
ok, gracias

pero es que el resultado final lo lleva a[pos] , a q lleva entonces
 
me quedo asi

comentariando algunas lineas

#include <stdio.h>
#include <conio.h>
void main()
{

int n,i,a[50],sum=0,prom,pos;
printf("ingresar tamaño del vector");
scanf("%d",&n);

for(i=0;i<n;i++){
printf("ingresar numero");
scanf("%d",&a);
}
for(i=0;i<n;i++){
sum = sum + a;

}
prom=sum/n;

for(i=0;i<n;i++){
if(i % 2 == 0){
a=prom;
//pos=i;
}
}
//a[pos]=prom;

for(i=0;i<n;i++){
printf("%d",a);
}
}

efectivamente si lo hace , lo curioso de l caso es que cuando coloco 2 4 6 8 10
el promedio es 6 deberia colocar 6 6 6 6 6 y no lo hace

Gracias
 
que onda celio, nuevamente por aca, jejejej ya tiene que no me aparecia, un dato, que creo que se te olvido jejej.

Recuerda que tu programa evalua las posiciones de los vectores, no los valores que estan en cada posicion, por lo tanto esta bien
 
Segun explicaste vas a calcular el promedio y reemplazarlo en el vector solo en las posiciones pares. Para eso haces el if con el modulo 2. Y al final no te imprime el promedio solamente porque estas imprimiendo todo el vector, posiciones impares (que guardan su numero original) y las pares (con el numero reemplazado por el promedio)

Cualquier cosa pregunta y te ayudo. Un saludo
 
Volver
Arriba