Sábado 16 de Noviembre de 2024, 00:30
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
no entiendo porque pasa esto
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: no entiendo porque pasa esto (Leído 909 veces)
spainlord
Nuevo Miembro
Mensajes: 5
no entiendo porque pasa esto
«
en:
Domingo 16 de Noviembre de 2008, 21:36 »
0
por alguna razon al imprimir el vector original y el vector B me da numeros muy diferentes a los ingresados(basura). Alguien me ayuda?
Código: Text
/*5.Desarrollar un programa en C, el cual Calcule el promedio de n valores almacenados
en un vector. Determinar además cuantos son mayores que el promedio, imprimir el
promedio, el número de datos mayores que el promedio y una lista de valores mayores
que el promedio, así como el vector original.*/
#include<stdio.h>
/*int n,i,j=0,A[' '],B[' '],sum=0,cont=0;
float prom;*/
void lectura(int n);
int suma(int n);
float prom(int sum, int n);
int calc(float prom,int n);
void impr(int cont,float prome,int n);
void main(void)
{
int n,sum,cont;
float prome;
do
{
printf("Ingresa la cantidad de elementos en el arreglo A: ");
scanf("%d",&n);
}while(n<1);
lectura(n);
sum= suma(n);
prome=prom(sum,n);
cont=calc(prome,n);
impr(cont,prome,n);
}
void lectura(int n)
{
int i=0,A[' '];
printf("nIngresa los valores del arreglo A: ");
for(i=0;i<n;i++)
{
printf("n A[%d]: ",i+1);
scanf("%d",&A[i]);
}
}
int suma(int n)
{
int i=0,sum=0,A[' '];
for(i=0;i<n;i++)
sum=sum+A[i];
return sum;
}
float prom(int sum,int n)
{
float prom;
prom=(float)sum/n;
return prom;
}
int calc(float prome,int n)
{
int A[' '],i=0,j=0,cont=0,B[' '];
for(i=0;i<n;i++)
{
if(A[i]>prome)
{
cont=cont+1;
B[j]=A[i];
j++;
}
}
return cont;
}
void impr(int cont,float prome,int n)
{
int A[' '],i=0,j=0,B[' '];
printf("ntVector original: ");
for(i=0;i<n;i++)
printf(" %d ",A[i]);
printf("ntPromedio: %.2f",prome);
printf("ntCantidad de valores mayores al promedio: %d",cont);
printf("ntLos valores mayores que el promedio: ");
for(j=0;j<cont;j++)
printf(" %d ",B[j]);
}
Tweet
spainlord
Nuevo Miembro
Mensajes: 5
Re: no entiendo porque pasa esto
«
Respuesta #1 en:
Domingo 16 de Noviembre de 2008, 22:31 »
0
ya lo resolvi, gracias para cualquiiera que lo haya leido, solamente olvide que como la declare a A[' '] como local en cada funcion, su valor se perdia y el programa usaba basura almacenada ^.^
...asi que deberia declararla como global?..porque he leido que no es recomendable, auqneu en este caso no se me ocurre otra cosa
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
no entiendo porque pasa esto