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];
//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
Pergunta
Douglas L Costta
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.