Ir para conteúdo
Fórum Script Brasil
  • 0

Código C++


Douglas L Costta

Pergunta

Preciso de ajuda para executar um código em C++. Não estou conseguindo encontrar onde estou errando. se alguém puder ajudar...

Desde já agradeço!

=== C Ó D I G O ===

#include <iostream>
#include <cstring>
#include <fstream>
#include <cmath>
#include<stdlib.h>
/*1- America do Sul
2- America Central
3- America do Norte
4- Africa
5- Europa
6- Asia
7- Oceania*/

using namespace std;


int main(){
    int i=0,j,k;
    char Linha[100];
    FILE *arquivo;
    arquivo = std::fopen("temperaturas.txt", "r");
    int contador[8],ativado;
    float soma[9],media[9],soma_desvio[9];

    for(j=0;j<=8;j++){contador[j]=0;soma[j]=0;soma_desvio[j]=0;};

//Apresente todas as temperaturas do arquivo na tela de saída.
    while (!feof(arquivo))
  {
// Lê uma linha (inclusive com o '\n')
       fgets(Linha, 100, arquivo);  // o 'fgets' lê até 99 caracteres ou até o '\n'

       printf("Linha %d : %s",i,Linha);

            if(strcmp (Linha, "America do Sul\n")==0){ativado=1;continue;} //indicador de passagem
            if(strcmp (Linha, "America Central\n")==0){ativado=2;continue;} //indicador de passagem
            if(strcmp (Linha, "America do Norte\n")==0){ativado=3;continue;} //indicador de passagem
            if(strcmp (Linha, "Africa\n")==0){ativado=4;continue;} //indicador de passagem
            if(strcmp (Linha, "Europa\n")==0){ativado=5;continue;} //indicador de passagem
            if(strcmp (Linha, "Asia\n")==0){ativado=6;continue;} //indicador de passagem
            if(strcmp (Linha, "Oceania\n")==0){ativado=7;continue;} //indicador de passagem
            if(strcmp (Linha, "##########\n")==0){continue;} //continue interrompe o laço atual e começa com o proximo i


        //calcula a media
            contador[ativado]++;
            soma[ativado]=soma[ativado]+ (atoi(Linha)); //stoi transforma de string para int


      i++;
  }

  rewind(arquivo);//volta ao começo do arquivo
  media[1]=soma[1]/contador[1];
  media[2]=soma[2]/contador[2];
  media[3]=soma[3]/contador[3];
  media[4]=soma[4]/contador[4];
  media[5]=soma[5]/contador[5];
  media[6]=soma[6]/contador[6];
  media[7]=soma[7]/contador[7];
  //media geral
  media[8]=(soma[7]+soma[6]+soma[5]+soma[4]+soma[3]+soma[2]+soma[1])/(contador[1]+contador[2]+contador[3]+contador[4]+contador[5]+contador[6]+contador[7]);


i=0;
    while (!feof(arquivo))
  {
// Lê uma linha (inclusive com o '\n')
       fgets(Linha, 100, arquivo);  // o 'fgets' lê até 99 caracteres ou até o '\n'

       printf("Linha %d : %s",i,Linha);

            if(strcmp (Linha, "America do Sul\n")==0){ativado=1;continue;} //indicador de passagem
            if(strcmp (Linha, "America Central\n")==0){ativado=2;continue;} //indicador de passagem
            if(strcmp (Linha, "America do Norte\n")==0){ativado=3;continue;} //indicador de passagem
            if(strcmp (Linha, "Africa\n")==0){ativado=4;continue;} //indicador de passagem
            if(strcmp (Linha, "Europa\n")==0){ativado=5;continue;} //indicador de passagem
            if(strcmp (Linha, "Asia\n")==0){ativado=6;continue;} //indicador de passagem
            if(strcmp (Linha, "Oceania\n")==0){ativado=7;continue;} //indicador de passagem
            if(strcmp (Linha, "##########\n")==0){continue;} //indicador de passagem

            //calcula desvio padrão
            soma_desvio[ativado]=soma_desvio[ativado]+((atoi(Linha)-media[ativado])*(atoi(Linha)-media[ativado]));
            soma_desvio[8]=soma_desvio[8]+(((atoi(Linha)-media[8])*(atoi(Linha)-media[8])));


      i++;
  }
cout<<"\nMedia  "<<media[1];
cout<<"\nMedia  "<<media[2];
cout<<"\nMedia  "<<media[3];
cout<<"\nMedia  "<<media[4];
cout<<"\nMedia  "<<media[5];
cout<<"\nMedia  "<<media[6];
cout<<"\nMedia  "<<media[7];
cout<<"\nMedia Geral "<<media[8];

cout<<"\nDesvio  "<<sqrt(soma_desvio[1]/contador[1]) ;
cout<<"\nDesvio  "<<sqrt(soma_desvio[2]/contador[2]) ;
cout<<"\nDesvio  "<<sqrt(soma_desvio[3]/contador[3]) ;
cout<<"\nDesvio  "<<sqrt(soma_desvio[4]/contador[4]) ;
cout<<"\nDesvio  "<<sqrt(soma_desvio[5]/contador[5]) ;
cout<<"\nDesvio  "<<sqrt(soma_desvio[6]/contador[6]) ;
cout<<"\nDesvio  "<<sqrt(soma_desvio[7]/contador[7]) ;
cout<<"\nDesvio Geral "<<sqrt(soma_desvio[8]/i) ;
// Exiba a média e o desvio padrão de todas as temperaturas medidas

// Apresente a média e o desvio padrão de cada continente.

arquivo.close();
return(0);
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...