Ir ao conteúdo
  • Cadastre-se

Dúvida em um exercício que envolve funções e vetores no c++


Visitante
Ir à solução Resolvido por dontpanic,

Posts recomendados

Olá pessoal, esta dando erro na função do meu programa

o exercício é o número 1 dessa lista

 

http://www.iceb.ufop.br/decom/prof/guarda/BCC701/ListaExerc1_Modulo3_2014-1.pdf

 

da uma olhada no meu código:

 

#include <iostream>
using namespace std;

int media(int a, b ){ //O parâmetro "a" significa o vetor q estou querendo calcular a media e o parametro "b" significa o total d elementos
    int soma=0;
    for (int i=0;i<b-1;i++){
        soma+=a; //Esta dando erro nessa linha!!!!
    }
    media=soma/(b-1);
    return media;
}

int main()
{
    int n=1, i=0, vet[10];
    cout<<"CALCULO DA MEDIA"<<endl;
    while (n!=0){
        cout<<"Digite um valor positivo ou um negativo  para sair: ";
        cin>>n;
        vet=n;
        i++;
    }
    cout<<"Média dos valores digitados: "<<media(vet, i)<<endl;
}
 

Link para o comentário
Compartilhar em outros sites

Na sua função você precisa definir os tipos que cada variável recebe.

Se a variável "a" recebe o valor de um vetor de ints, então ela precisa ser "int* a" ou "int a[10]".

E se a variável "b" recebe um int, precisa declarar isso também.

int media( int *a, int b ) {}

Além disso, você tá retornando a variável "media", mas em nenhum momento você declarou essa variável no escopo da sua função ou do programa.

Link para o comentário
Compartilhar em outros sites

Eu consegui agora resolver esse problema, mas agora eu tive outro, é q na hora d imprimir o resultado, imprimi só o número 3 e n o 3.4, eu acho q está tendo problemas com números inteiros e números não inteiros, você poderia me indicar uma manobra para corrigir esse problema?

Olha o meu código:

 

#include <iostream>
using namespace std;

int media( int *a, int b ) {
    int soma=0;
    float media=0;
    for (int i=0;i<b-1;i++){
        soma+=a;
    }
    media=soma/(b-1);
    return media;
}

int main()
{
    int n=1, i=0, vet[10];
    cout<<"CALCULO DA MEDIA"<<endl;
    while (n>0){
        cout<<"Digite um valor positivo ou um negativo  para sair: ";
        cin>>n;
        vet=n;
        i++;
    }
    cout<<"Média dos valores digitados: "<<media(vet, i)<<endl;
}
 

Link para o comentário
Compartilhar em outros sites

  • Solução

"soma" e "b" são inteiros... a divisão de dois números inteiros sempre vai resultar em um número inteiro, no c++.

Pra pegar o resultado fracionado, primeiro você muda o tipo da função "media()" pra float, depois você faz o cast de soma pra float.

 

media = (float) soma / (b-1);

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!