expected constructor, destructor, or type conversion before '(' token

1. expected constructor, destructor, or type conversion before '(' token

Leonardo Trindade Pereira
ltpereira

(usa Suse)

Enviado em 29/10/2018 - 12:39h

Galera, bom dia!

O professora passou o exercício abaixo, porém na execução do programa recebo o erro "expected constructor, destructor, or type conversion before '(' token"

Alguém pode me ajudar por favor.


Exercício

Programa em C que leia para cada candidato, a idade, o sexo (M ou F) e a experiência no serviço (S ou N). Para encerrar a entrada de dados, digite zero para a idade.

O programa também deve calcular e mostrar.

O número de candidatos do sexo feminino;
O número de candidatos do sexo masculino;
A idade média dos homens que possuem a experiencia no serviço;
A porcentagem dos homens com mais de 45 anos entre o total dos homens;
O número de mulheres com idade inferior a 21 anos e com experiência no serviço;
A menor idade entre as mulheres que possuem a experiência no serviço.



Código.



int inscritos, chamada, idade, masc=0, fem=0;
int qtde_m35exp=0 , menor_idademulher=150, x=1;
float idade_media=0, cont_idade_media=0, qtde_h45=0, porcentagem_45anos=0;
char sexo, experiencia;
printf("Quantos inscritos para a vaga? ");
scanf("%d", &inscritos);
while(x <= inscritos)
{

fflush(stdin); //limpar buffer
printf("\n\nCandidato %d",x);
printf("\nQual seu numero de inscrição?: ");
scanf("%d",&chamada);
printf("Qual sua idade?:");
scanf("%d",&idade);
fflush(stdin);
printf("Qual seu sexo? (M ou F): ");
scanf("%c",&sexo);
switch(sexo) // Quantitativo de candidatos e candidatas
{
case 'M':
masc++;
break;
case 'F': fem++;
break;
}
fflush(stdin);
printf("Tem experiencia anterior?: (S ou N)");
scanf("%c",&experiencia);
experiencia=tolower(experiencia);

if(experiencia == 's') //Idade media dos candidatos com experiencia anterior.
{
idade_media= idade_media + idade;
cont_idade_media++;
if(sexo == 'F') //Menor idade das mulheres com experiencia.
{
if(menor_idademulheres >= idade)
{
menor_idademulheres = idade;
}
}
}
if(experiencia == 'n')
{

}
if((idade > 45) && (sexo == 'M')) //Homens com mais de 45 anos.
{
qtde_m35exp++;
}

fflush(stdin);
getch();
x++;

}//fim while
printf("\n\nTotal de candidatos eh %d e candidatas eh %d",masc,fem);

if(cont_idade_media != 0)
idade_media=idade_media/cont_idade_media;
printf("\nA idade media dos candidatos com experiencia anterior foi de %0.2f", idade media)

if(masc != 0)
{
porcentagem_45anos = (qtde_h45++/ (float)masc) * 100;
printf("\nO percentual de homens com mais de 45 anos foi de %0.2f %%", porcentagem_45anos)
}else{
printf("\nO percentual de homens com mais de 45 anos foi de 0 %%");
}

printf("\nA qtde de mulheres com menos de 35 anos que ja tenham experiencia %d", qtde_m35exp)

if(menor_idademulheres == 150)
{
printf("\nNão houve entre as mulhere nenhuma que ja tenha experiencia.");
}else{
printf("\nEntre as mulheres com experiencia, a com menor idade foi de %d anos", menor_idade);
}

}// fim da função



  


2. Re: expected constructor, destructor, or type conversion before '(' token

Paulo
paulo1205

(usa Ubuntu)

Enviado em 29/10/2018 - 23:48h

Tem certeza que o erro é na hora da execução? O tipo de mensagem de erro acima parece mais com um erro de compilação.

Seria melhor se você tivesse enviado o código todo, em vez de apenas um pedaço.

Não li o código em detalhes, mas deu para ver que em alguns lugares você esqueceu de usar o ponto-e-vírgula ao final de comandos. Dependendo do lugar e de o que esteja escrito no código que vem antes e depois de onde o ponto-e-vírgula deveria estar, a análise gramatical feita pelo compilador pode ficar confusa, gerando erros em cascata, às vezes ao longo de múltiplas linhas. Eu não duvido que o erro que você viu seja por causa de algo assim. Outra possível causa de erros semelhantes são o desequilíbrio de parênteses colchetes e chaves.

Entretanto, eu acho muito pouco provável que o erro mostrado a você não tenha trazido uma informação de em qual linha do código o erro foi encontrado (informação que você possivelmente suprimiu ao copiar o erro para cá). Você provavelmente deve começar a procurar em volta da linha que lhe tiver sido indicada.


3. Re: expected constructor, destructor, or type conversion before '(' token

Leonardo Trindade Pereira
ltpereira

(usa Suse)

Enviado em 30/10/2018 - 08:33h

Olá Paulo!

O código está completo e o erro ocorre na linha 5.

Obrigado pela ajuda.


4. Re: expected constructor, destructor, or type conversion before '(' token

Paulo
paulo1205

(usa Ubuntu)

Enviado em 30/10/2018 - 12:19h

Onde estão a declaração e definição da função main, por exemplo, ou a inclusão dos cabeçalhos que declaram as funções que você usa no programa? Tais ausências deixam claro que o programa postado não está completo.

Se você acha que está completo, então o que se tem para resolver é um erro ainda mais básico, de entendimento da estrutura do programa em C e de sua gramática.

De todo modo, isso não invalida o que eu disse sobre comandos que estão com falta de ponto-e-vírgula.


5. expected constructor, destructor, or type conversion before '(' token

Leonardo Trindade Pereira
ltpereira

(usa Suse)

Enviado em 08/11/2018 - 09:16h

Olá Paulo, bom dia!

Refiz o código com auxilio de um colega.

#include<math.h>
#include<stdio.h>
#include<string.h>

int main(){

int qnt = 0, numero, i,idade, m_inf_21anos = 0, masc_exp= 0, qnt_cand_masc = 0, qnt_cand_fem = 0, qnt_mas_45anos = 0, menoridade_f = 0;
float mediacand_mas = 0;
char sexo[10], experiencia[10];

scanf("%d",&qnt);

for(i = 0; i < qnt; i++){

scanf("%d",&numero);
scanf("%d",&idade);
scanf("%s",sexo);
scanf("%s",experiencia);

if(strcmp(sexo,"FEMININO")==0){
qnt_cand_fem++;

if(strcmp(experiencia,"SIM")==0){

if (idade < 21){
m_inf_21anos++;
}

if (qnt_cand_fem == 1){
menoridade_f = idade;
}

else if (idade < menoridade_f){
menoridade_f = idade;
}
}
}

else{
qnt_cand_masc++;

if (strcmp(experiencia,"SIM")== 0){
masc_exp++;
}

if(idade > 45){
qnt_mas_45anos++;
}
}

}
mediacand_mas = ((float) masc_exp / qnt_cand_masc) * 100;
printf("MULHERES INSCRITAS COM EXPERIENCIA E IDADE MENOR QUE 21 ANOS = %d\n",m_inf_21anos);
printf("CANDIDATOS MASCULINOS = %d\n",qnt_cand_masc);
printf("CANDIDATOS FEMININOS = %d\n",qnt_cand_fem);
printf("MEDIA DE HOMENS COM EXPERIENCIA = %.2f\n",mediacand_mas);
printf("HOMENS COM MAIS DE 45 ANOS = %d\n",qnt_mas_45anos);
printf("MENOR IDADE DE MULHER COM EXPERIENCIA = %d\n",menoridade_f);

return 0;
}





  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts