Ajuda com programa de media e variancia

2 respostas
S

Ola pessoal, estou desenvolvendo um cód utilizando a biblioteca iostream, porém estou tendo uma certa dificuldade com alguns erros que apareceram quando compilado o cód e não estou conseguindo corrgir esses erros então venho pedir ajuda aos demais colegas, desde ja agradeço a atenção e colaboração de todos.

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int i,  soma, media, var;
    int nota[i];
    
    
    cout <<"Entre com as notas \n";
    for (i=0; i<=8; i++)
    cin >> nota[i];
    setbuf(stdin,NULL);
    for(i=0;i<8;i++)
    soma=soma+nota;
    media=soma/8;
    cout << "a media das notas foram \n"<< media<<endl;
    for(i=0;i<8;i++)
    var=var+((nota[i]-media)*(nota[i]-media));
    cout << "A variancia e de:"<<var/8<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

Apoveitando queria saber se tem como utilizar o comando pow para fazer esse calculo ((nota[i]-media)*(nota[i]-media)).

Novamente muito obrigado a todos.

2 Respostas

E

Para fazer um for que vá de 0 até 7 (ou seja, contando 8 elementos), você precisa usar

for (i=0; i<8; i++)

Ao declarar um array, você tem de definir seu tamanho. Por exemplo,

int nota [8];

Ao pegar um elemento de um array, você precisa especificar o índice. Por exemplo:

soma=soma+nota[i];

Diferentemente do Java, o C++ não avisa que uma variável não foi inicializada, e preenche seu valor com lixo. Você precisa pôr um valor para “soma” e um valor para “var” antes de sair somando coisas nele. No seu caso, você precisa inicializar o valor com zero.

A função “pow” está declarada em “math.h”, portanto você tem de incluir <math.h>. Veja a documentação:

http://www.cplusplus.com/reference/clibrary/cmath/pow/

S

Obrigado funcionou, o código ficou da seguinte forma:

#include <iostream>   
  
using namespace std;   
  
int main(int argc, char *argv[])   
{   
    int i,  soma=0, media, var=0;   
    int nota[8];   
       
       
    cout <<"Entre com as notas \n";   
    for (i=0; i<=8; i++)   
    cin >> nota[i];   
    setbuf(stdin,NULL);   
    for(i=0; i<8; i++)  
    soma=soma+nota[i];   
    media=soma/8;   
    cout << "a media das notas foram \n"<< media<<endl;   
    for(i=0;i<8;i++) 
    var=var+((nota[i]-media)*(nota[i]-media));   
    cout << "A variancia e de:"<<var/8<<endl;   
    system("PAUSE");   
    return EXIT_SUCCESS;   
}
Criado 29 de outubro de 2009
Ultima resposta 29 de out. de 2009
Respostas 2
Participantes 2