elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con variables puntero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con variables puntero  (Leído 3,152 veces)
oxi12pek

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Problema con variables puntero
« en: 5 Noviembre 2012, 16:35 pm »

Hola a todos! Tengo un problemilla con un programa. El programa tiene que calcular toda la suma de los elementos del array y su promedio mediante el uso de punteros y una funcion. Yo he escrito este programa:
void avg_sum(double a[],int n,double *avg, double *sum)
  {
  int i;

  for(i=0;i<n;i++)
    *sum+=a;
  *avg=(*sum/n);
  }
int main(void)
{
  double A[]={1,2,3,4,5,6.6,7.7,88.8,1,4},x,y;
  int j;

  avg_sum(A,j,&x,&y);
  printf("Suma total del array: %f\n",y);
  printf("Promedio del array: %f\n",x);
}
Me puede explicar alguien que estoy haciendo mal?
Gracias a todos !!


En línea

Algun dia lo sere...
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema con variables puntero
« Respuesta #1 en: 5 Noviembre 2012, 16:46 pm »

Los errores son dos:

* Al llamar a la función "avg_sum" su segundo argumento debe ser el numero de elementos en el array. Tu pasas el valor de "j" el cual es "no definido" o "basura".

* El valor inicial del acumulador (la variable "y") también es "no definido" o "basura", debes inicializarlo con cero.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: Problema con variables puntero
« Respuesta #2 en: 5 Noviembre 2012, 16:48 pm »

Código
  1. #include <stdio.h>
  2. void avg_sum(double a[],int n,double *avg, double *sum)
  3.  {
  4.  int i;
  5.  
  6.  *sum = 0;
  7.  
  8.  for(i=0;i<n;i++) *sum+=a[i];
  9.  *avg=(*sum/n);
  10.  }
  11.  
  12. int main(void)
  13. {
  14.  double A[]={1,2,3,4,5,6.6,7.7,88.8,1,4},x,y;
  15.  int j=10;
  16.  
  17.  avg_sum(A,j,&x,&y);
  18.  printf("Suma total del array: %.2f\n",y);
  19.  printf("Promedio del array: %.2f\n",x);
  20. }

También faltaba indexar el array de doubles.
En línea

Puede que desees aprender a programar desde 0: www.espascal.es
oxi12pek

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: Problema con variables puntero
« Respuesta #3 en: 5 Noviembre 2012, 16:50 pm »

Y porque tengo que inicializar y??? No lo veo claro.
En línea

Algun dia lo sere...
BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: Problema con variables puntero
« Respuesta #4 en: 5 Noviembre 2012, 16:59 pm »

Y porque tengo que inicializar y??? No lo veo claro.

O inicializas y o inicializas *sum dentro de la función.

Por que si no el la primera suma harías

sum = basura + a[0]

Porque y/*sum inicialmente tiene un valor basura, no tiene por qué ser 0.
En línea

Puede que desees aprender a programar desde 0: www.espascal.es
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problema con variables puntero
« Respuesta #5 en: 5 Noviembre 2012, 17:11 pm »

También faltaba indexar el array de doubles.
Esa operacion:
Código
  1. *sum += a[i];
Si se encuentra en el primer mensaje pero oxi12pek no utilizo las etiquetas de código (debería) y por eso en su lugar aparece el texto en cursiva.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
oxi12pek

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: Problema con variables puntero
« Respuesta #6 en: 5 Noviembre 2012, 17:18 pm »

Vale. Ahora lo veo. Muchas gracias por tomarte un tiempo en contestar. Me has ayudado mucho.
SALUDOS
En línea

Algun dia lo sere...
BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: Problema con variables puntero
« Respuesta #7 en: 5 Noviembre 2012, 17:26 pm »

Esa operacion:
Código
  1. *sum += a[i];
Si se encuentra en el primer mensaje pero oxi12pek no utilizo las etiquetas de código (debería) y por eso en su lugar aparece el texto en cursiva.

Un saludo

Toda la razón. xD
En línea

Puede que desees aprender a programar desde 0: www.espascal.es
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Problema un poco sonso al intercambiar un puntero por otro.
Programación C/C++
BlackZeroX 5 3,132 Último mensaje 13 Febrero 2011, 07:19 am
por BlackZeroX
Problema con puntero láser azul
Electrónica
danielpower 0 3,069 Último mensaje 9 Febrero 2012, 07:33 am
por danielpower
[BATCH] ¿Como puedo meter variables dentro de variables?
Scripting
Meine programmen 1 4,115 Último mensaje 24 Marzo 2012, 16:48 pm
por Eleкtro
F1 - Problema con puntero a Función C#
.NET (C#, VB.NET, ASP)
Maurice_Lupin 0 2,173 Último mensaje 17 Mayo 2012, 16:14 pm
por Maurice_Lupin
Problema Incrementar puntero
Programación C/C++
x64core 5 3,315 Último mensaje 16 Junio 2012, 20:32 pm
por david_BS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines