Ir para o conteúdo
Upper

Soma de n float elementos

Mensagens Recomendadas

Upper    0
Upper

Oi boas

Tou com uma duvida

preciso de criar um programa que receba um vector de x elementos do tipo float e faça a soma desses mesmos elementos de momento tenho este codigo:

#include <stdio.h>


int main(){

int n;
int ind;

printf("Quantos elementos e que sao: ");
scanf(" %d", &n);

int v[10];
for(ind = 0; ind < n; ind ++){
	v[ind]=0;
	printf("Elemento %d = ",(ind+1));
	scanf(" %d", &v[ind]); 

}

float total=0;
for(ind = 0 ; ind < n; ind++);
{
	total += v[ind];
}


printf(" %f", total);


}

So que ele nao efectua bem a soma do total. ALguem me pode ajudar?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
bruno1234    20
bruno1234

Talvez esteja a converter este resultado para int:

total += v[ind];

experimenta fazer assim:

total = (float) (total + v[ind]);

é a unica coisa q me ocorre neste momento.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

continua a fazer a mesma coisa

Já agora mete scanf(" %f", &(v[ind]));

e não precisas de pôr o vector a zeros porque estás a pedir os valores ao utilizador.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Upper    0
Upper

#include <stdio.h>


int main(){

int n;
int ind;

printf("Quantos elementos e que sao: ");
scanf(" %d", &n);

float v[10];
for(ind = 0; ind < n; ind ++){

	printf("Elemento %d = ",(ind+1));
	scanf(" %f", &v[ind]); 

}

float total=0;
for(ind = 0 ; ind < n; ind++);
{
	total = (float) (total + v[ind]);

}


printf(" %f", total);


}

Continua com o mesmo erro, mesmo depois das duas modificacoes

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

Mas o array v é suposto ser inteiros ou floats?

Tens o array declarado como int v[10].

Fail da minha parte em não ter reparado nisso. São esses dois erros, o %d e o facto de declares o array como sendo de inteiros.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Upper    0
Upper

Ja agora outra duvida sobre o mesmo programa:

Agora quero passar a parte que efectua a soma para uma funcao

#include <stdio.h>

float soma(int n);
int main(){

int n, ind;

printf("Quantos elementos e que sao: ");
scanf(" %d", &n);

float v[10];
for(ind = 0; ind < n; ind ++){

	printf("Elemento %d = ",(ind+1));
	scanf(" %f", &v[ind]); 

}
soma(n);
}

float soma(int n){

int ind;
float v[10];
float total=0;
for(ind = 0 ; ind < n; ind++)
{
	total = (float) (total + v[ind]);

}


printf(" %f", total);


}

so que agora quando executo o programa este da lixo no resultado do total. O que me falta?

Sera que o n que esta em soma(n) e o erro?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

Não está a passar os valores que leste anteriormente para a nova função. Em vez disso estás a declarar um novo vector v, que obviamente terá lixo.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Upper    0
Upper

#include <stdio.h>

float soma(int n, float v[]);

int main(){

int n, ind;

printf("Quantos elementos e que sao: ");
scanf(" %d", &n);

float v[10];
for(ind = 0; ind < n; ind ++){

	printf("Elemento %d = ",(ind+1));
	scanf(" %f", &v[ind]); 

}
soma(n,v[10]);
}

float soma(int n, float v[]){

int ind;
float v[10];
float total=0;
for(ind = 0 ; ind < n; ind++)
{
	total = (float) (total + v[ind]);

}


printf(" %f", total);


}

E assim que o vector esta bem declarado?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Upper    0
Upper

#include <stdio.h>

float soma(int n, float *v[]);

int main(){

int n, ind;

printf("Quantos elementos e que sao: ");
scanf(" %d", &n);

float v[10];
for(ind = 0; ind < n; ind ++){

	printf("Elemento %d = ",(ind+1));
	scanf(" %f", &v[ind]); 

}
soma(n,&v);
}

float soma(int n, float *v[]){

int ind;

float total=0;
for(ind = 0 ; ind < n; ind++)
{
	total +=  v[ind];

}


printf(" %f", total);


}

Agora diz que e invalido o operando + na funcao soma

e no main "passinf arg 2 of 'soma' from incompatible pointer type"

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade