Autor
|
Tema: funciones paso por referencia (Leído 2,746 veces)
|
vivianfes
Desconectado
Mensajes: 17
|
hola tengo dudas sobre el tema de funciones, en este ejercicio debo pedir al usuario que ingrese los digitos se debe calcular la suma y debe imprimir tambien el area de memoria pero no me imprime la suma ni me deja leer los numeros al correr el programa, agradeceria su ayuda #include <stdio.h> int main(int argc, char *argv[]) { int var,a=0,b=0,c=0,resultado; printf(" a su direccion = %p\n",&a ); printf(" b su direccion = %p\n",&b ); printf(" c su direccion = %p\n",&c ); a=(a,b,c,resultado); printf("El resultado de la suma es %d",a ); } int suma(int a, int b,int c, int *resultado) { *resultado = a +b+c; return(*resultado); }
Mod: post corregido, asegurate de seleccionar tu codigo antes de usar las GeSHi
|
|
« Última modificación: 4 Marzo 2015, 00:09 am por engel lex »
|
En línea
|
|
|
|
T. Collins
Desconectado
Mensajes: 206
|
Aquí no llamas a ninguna función: a=(a,b,c,resultado);
Sería: a=suma(a,b,c,resultado);
Pero si tiene que recibir el resultado en la variable resultado no tienes que poner a=suma(), vale con: suma(a,b,c,resultado);
Si vas a hacer scanf de a, b, y c dentro de la función, no tienes que pasar a, b,y c como parametros: int suma(int *resultado) { int a=0, b=0, c=0; *resultado = a +b+c; }
Y vale con hacer: printf("El resultado de la suma es %d", *resultado );
|
|
|
En línea
|
|
|
|
vivianfes
Desconectado
Mensajes: 17
|
Aquí no llamas a ninguna función: a=(a,b,c,resultado);
Sería: a=suma(a,b,c,resultado);
Pero si tiene que recibir el resultado en la variable resultado no tienes que poner a=suma(), vale con: suma(a,b,c,resultado);
Si vas a hacer scanf de a, b, y c dentro de la función, no tienes que pasar a, b,y c como parametros: int suma(int *resultado) { int a=0, b=0, c=0; *resultado = a +b+c; }
Y vale con hacer: printf("El resultado de la suma es %d", *resultado );
Aquí no llamas a ninguna función: a=(a,b,c,resultado);
Sería: a=suma(a,b,c,resultado);
Pero si tiene que recibir el resultado en la variable resultado no tienes que poner a=suma(), vale con: suma(a,b,c,resultado);
Si vas a hacer scanf de a, b, y c dentro de la función, no tienes que pasar a, b,y c como parametros: int suma(int *resultado) { int a=0, b=0, c=0; *resultado = a +b+c; }
Y vale con hacer: printf("El resultado de la suma es %d", *resultado );
ok en todo caso tendria que dar el prototipo de la funcion suma no? ya que me marca error en suma(a,b,c,resultado);
|
|
|
En línea
|
|
|
|
T. Collins
Desconectado
Mensajes: 206
|
Al final suma() solo tiene resultado como parametro, tienes que poner: suma(resultado);
El prototipo sería: void suma(int*);
void suma(int *resultado) { int a=0, b=0, c=0; *resultado = a +b+c; }
|
|
« Última modificación: 4 Marzo 2015, 00:34 am por T. Collins »
|
En línea
|
|
|
|
vivianfes
Desconectado
Mensajes: 17
|
ya no me marco ningun error, te lo agradezco mucho, solo tengo otra duda al correrlo en la parte que leera los valores los ingreso y al darle enter me aparce un error de sistema y ya no lo deja correr, es por el programa? o en si por windows?
|
|
|
En línea
|
|
|
|
T. Collins
Desconectado
Mensajes: 206
|
void suma(int *resultado) { int a=0, b=0, c=0; *resultado = a +b+c; }
A scanf hay que pasarle la dirección de las variables con &. Tienes que ir poco a poco, estás intentando hacer ejercicios de paso por referencia sin dominar cosas más básicas. Es mejor ser capaz de ver los errores de tu código e ir corrigiendolos por ti mismo, a que te lo den ya todo corregido.
|
|
|
En línea
|
|
|
|
vivianfes
Desconectado
Mensajes: 17
|
)
A scanf hay que pasarle la dirección de las variables con &. Tienes que ir poco a poco, estás intentando hacer ejercicios de paso por referencia sin dominar cosas más básicas. Es mejor ser capaz de ver los errores de tu código e ir corrigiendolos por ti mismo, a que te lo den ya todo corregido.
eso no te lo niego la verdad es que funciones se me dificulta pero te agradezco mucho tu ayuda de verdad
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Paso de parametros por referencia...funciones
Programación C/C++
|
soser
|
2
|
4,507
|
2 Septiembre 2010, 22:33 pm
por soser
|
|
|
paso por referencia de un integer
Java
|
kasiko
|
9
|
15,173
|
24 Enero 2011, 06:26 am
por ChavalChavito
|
|
|
Paso por referencia
Java
|
mapers
|
8
|
5,382
|
27 Julio 2011, 12:27 pm
por [Case]
|
|
|
Tipos de paso por referencia y paso por referencia de tipo apuntador
Programación C/C++
|
CATBro
|
3
|
3,422
|
8 Abril 2012, 08:23 am
por Beakman
|
|
|
Paso de funciones a otras funciones
Programación C/C++
|
eaz95
|
1
|
2,352
|
18 Julio 2017, 11:59 am
por ivancea96
|
|