Funções

1. Funções

Sheila Mayara Luna
SheilaLuna

(usa Outra)

Enviado em 27/11/2016 - 11:34h

Bom dia estou fazendo um programa e esta dando erro na parte em que a função tem que retorna a soma se alguém puder me ajudar agradeço.
/* Um programa que preencha um vetor de 15 posições some as 10 primeiras .*/

#include<stdio.h>
#include<stdlib.h>

int pren(int vet[15]){
int i;
for(i=0;i<15;i++){
printf("digite o numero de posicao %d: ", i+1);
scanf("%d", &vet [i]);
}
}
int somatoria(int vet[15]){
int i,soma,s=0;
for(i=0;i<10;i++){
soma=s+vet[i];
}
}

int main(){
int vet[15];
pren(vet);
somatoria(vet);
printf ("A soma dos 10 primeiros numero: %d ", somatoria);


return 0;
system ("pause");

}




  


2. resposta a dúvida

Bruno Ramiro
BrunoR

(usa Ubuntu)

Enviado em 27/11/2016 - 12:03h

Bom dia,

no for da função somatoria, você não implementou a soma de verdade.

"soma=s+vet[i]; " -> isso não soma os 10 primeiros elementos, ele só irá receber o décimo. O correto é = soma = soma + vet[i]; lembrando de zerar a variável soma antes de usá-la. Uma nota, a variável s não está sendo usada, pode retirá-la.

Mas os principais erros de compilação, são que você não retornou o valor da soma na função somatória... Faça um "return soma;"

Outro : Na main, você tentou printar
printf ("A soma dos 10 primeiros numero: %d ", somatoria); 

mas somatoria, é uma função, não uma variável, logo você deve passar seu parâmetro "vet" dessa maneira :
printf ("A soma dos 10 primeiros numero: %d ", somatoria(vet)); 
, ou então fazer com que uma variável, recebe a função, e depois passe essa variável no printf, dessa maneira :
int soma; soma = somatoria(vet); 
.

qualquer coisa só falar ! :)


3. Re: Funções

Sheila Mayara Luna
SheilaLuna

(usa Outra)

Enviado em 27/11/2016 - 12:16h

BrunoR escreveu:

Bom dia,

no for da função somatoria, você não implementou a soma de verdade.

"soma=s+vet[i]; " -> isso não soma os 10 primeiros elementos, ele só irá receber o décimo. O correto é = soma = soma + vet[i]; lembrando de zerar a variável soma antes de usá-la. Uma nota, a variável s não está sendo usada, pode retirá-la.

Mas os principais erros de compilação, são que você não retornou o valor da soma na função somatória... Faça um "return soma;"

Outro : Na main, você tentou printar
printf ("A soma dos 10 primeiros numero: %d ", somatoria); 


mas somatoria, é uma função, não uma variável, logo você deve passar seu parâmetro "vet" dessa maneira :
printf ("A soma dos 10 primeiros numero: %d ", somatoria(vet)); 
, ou então fazer com que uma variável, recebe a função, e depois passe essa variável no printf, dessa maneira :
int soma; soma = somatoria(vet); 
.

qualquer coisa só falar ! :)


obrigada pelas dicas mais ainda não consegui somar os dez primeiros
include<stdio.h>
#include<stdlib.h>

int pren(int vet[15]){
int i;
for(i=0;i<15;i++){
printf("digite o numero de posicao %d: ", i+1);
scanf("%d", &vet [i]);
}
}
int somatoria(int vet[15]){
int i,soma=0;
for(i=0;i<10;i++){
soma=soma+vet[i];

return soma;
}
}

int main(){
int vet[15], soma;

pren(vet);
somatoria(vet);
printf ("A soma dos 10 primeiros numero: %d ", soma)


return 0;
system ("pause");

}


4. Re: Funções

Bruno Ramiro
BrunoR

(usa Ubuntu)

Enviado em 27/11/2016 - 12:52h


Na main voce está passando uma "soma", mas o que é essa soma ? nada ainda, aparentemente você quer passar uma variável, então faça essa variável receber a função .

soma = somatoria(vet); 



5. Re: Funções

Bruno Ramiro
BrunoR

(usa Ubuntu)

Enviado em 27/11/2016 - 13:01h

Claro que nesse novo código seu, já tem outros erros que não estavam no primeiro, falta o include correto,
voce colocou o return dentro do for, na função somatoria...


6. Re: Funções

Sheila Mayara Luna
SheilaLuna

(usa Outra)

Enviado em 27/11/2016 - 13:11h

BrunoR escreveu:


Na main voce está passando uma "soma", mas o que é essa soma ? nada ainda, aparentemente você quer passar uma variável, então faça essa variável receber a função .

soma = somatoria(vet); 


#include<stdio.h>
#include<stdlib.h>

int pren(int vet[15]){
int i;
for(i=0;i<15;i++){
printf("digite o numero de posicao %d: ", i+1);
scanf("%d", &vet [i]);
}
}
int somatoria(int vet[15]){
int i,soma=0;
for(i=0;i<10;i++){
soma=soma+vet[i];

return soma;
}
}

int main(){
int vet[15], soma;

pren(vet);
soma=somatoria(vet);
printf ("A soma dos 10 primeiros numero: %d ", soma = somatoria(vet));


return 0;
system ("pause");

}


7. Re: Funções

Bruno Ramiro
BrunoR

(usa Ubuntu)

Enviado em 27/11/2016 - 13:15h


Amigo desse jeito:
soma=somatoria(vet);
printf ("A soma dos 10 primeiros numero: %d ", soma);


ou desse

printf ("A soma dos 10 primeiros numero: %d ", somatoria(vet)); 


e lembre de corrigir o return dentro do for .






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts