Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/03/2014, 10:43
TriN
 
Fecha de Ingreso: enero-2014
Mensajes: 47
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Funcion que retorna valor erroneo

Hola que tal bienvenido al foro yo tambien estoy empezando como tu, lo mejor que hecho para adquirir conocimientos es leer mucho actualmente estoy leyendo aprendiendo C en 21 dias de Peter Aitket, ok ahora con los detalles que observe en tu codigo y con las observaciones de como lo haria yo xD:

1- Declaras 3 parametros en tu función.
Código:
(int a,int b,int c)
, y solo pasas 2 argumentos, el cual es el valor de a y b, la variable c no tiene ningun valor cuando la pasas a la función.
2- Las funciones son independientes asi que cuando regresan a main el dato guardado en la variable es basura asi que se debe declarar una variable dentro del main para que guarde el retorno de la operación.
3- Si quieres que sume n elementos podrias hacer una funcion con un argumento tipo void y que retorne un valor entero o decimal te dejo los ejemplos

Sumar 2 elementos:

Código:
#include <stdio.h>
#include <conio.h>

int SUMAR(int a,int b){
   a + b;
    return a+b;
}


int main(){


int a,b,sum;
printf("Escribe tus valores:\n\n");
scanf("%d",&a);
scanf("%d",&b);

sum=SUMAR(a,b);
printf("%d",sum);

getch();
return 0;
}
Y este es el codigo para sumar dentro de la funcion y llamar a la funcion desde main
Código:
#include <stdio.h>
#include <conio.h>

int SUMA(void){
    int n,i,acum,n1;
    acum=0;
 
 printf("Cuantos elementos desea sumar ");
   scanf("%d",&n);
   for (i=1;i<=n;i++)
   {
       scanf("%d",&n1);
       acum+=n1;
       }
   printf("Resultado en funcion %d\n",acum);
   return acum;
}


int main(){
    int s;
s=SUMA();
printf("resultado en main %d\n",s);

getch();
return 0;
}
Saludos .