Ir ao conteúdo
  • Cadastre-se

Dev c++


jairosousa

Posts recomendados

ai passoal to conseguindo resolver mas não ta rodando direito

alguem de vocês poderia fazer uma correçao nesse exercicio valeu

Numa fábrica trabalham homens e mulheres divididos em duas classes:

A – os que fazem até 30 peças por mês

B – os que fazem mais de 31 peças por mês

A classe A recebe salário-mínimo, a classe B recebe salário-mínimo e mais 5% do salário-mínimo por peça, acima das 30 iniciais.

Fazer um algoritmo que leia o salário mínimo que é igual para todos os trabalhadores independente da classe, e em seguida:

Para cada trabalhador leia:

· O nome do operário

· O número de peças fabricadas por mês

· O sexo do operário

Ao final, o algoritmo deve apresentar:

· O salário de cada funcionário

· O total da folha mensal de pagamento da fábrica

· O número total de peças fabricadas por mês

· O total de peças fabricadas pelos homens

· O total de peças fabricadas pelas mulheresOBS: O algoritmo deverá solicitar a entrada de dados enquanto o usuário responder que deseja inserir novos dados (Continua[s/N].


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

int main(void)
{

float salario_minimo,folha_mensal,salario,maior_salario,media = 0;

int numero_total_pecas,pecas,total_homens_a,total_homens_b,total_mulher_a,total_mulher_b = 0;
int total_peca_homens_a,total_peca_homens_b,total_peca_mulher_a,total_peca_mulher_b = 0;

char nome;
char sexo;
char resposta;
char operario_maior_salario;

printf("Informe o salario minimo:");
scanf("%f", &salario_minimo);

do
{

printf("Nome do funcionario: ");
fflush(stdin);
scanf("%s", nome);
printf("Pecas fabricados no mes: ");
fflush(stdin);
scanf("%d", &pecas);
printf("Sexo do funcionario: ");
fflush(stdin);
scanf("%c", &sexo);

numero_total_pecas = numero_total_pecas + pecas;

// Classe A
if ( pecas <= 30 )
{

salario = salario_minimo;

if ( sexo == 'M' || sexo == 'm' )
{
total_homens_a = total_homens_a + 1;
total_peca_homens_a = total_peca_homens_a + pecas;
}
else
{

total_mulher_a = total_mulher_a + 1;
total_peca_mulher_a = total_peca_mulher_a + pecas;
}

}
else
{


// Classe B

salario = salario_minimo + ( pecas - 30 ) * (0.05 * salario_minimo);

if ( sexo == 'M' || sexo == 'm' )
{
total_homens_b = total_homens_b + 1;
total_peca_homens_b = total_peca_homens_b + pecas;
}
else
{
total_mulher_b = total_mulher_b + 1;
total_peca_mulher_b = total_peca_mulher_b + pecas;
}

}
}

folha_mensal = folha_mensal + salario;

if ( salario > maior_salario )
strcpy(operario_maior_salario, nome);

printf("Salario do funcionario: %0.f\n", salario);

printf("Deseja inserir novos dados? S - Sim ou N - Nao: ");
fflush(stdin);
scanf("%c",&resposta);

}
while ( resposta != 'N' && resposta != 'n' );

printf("Folha mensal de pagamentos: %0.f\n", folha_mensal);
printf("Total de peças fabricadas no mes: %0.d\n", numero_total_pecas );

media = 0;
if ( total_homens_a > 0)
media = (total_peca_homens_a / total_homens_a);
printf("Media de pecas de homens da classe A: %0.f\n", media );

media = 0;
if ( total_homens_b > 0)
media = (total_peca_homens_b / total_homens_B);
printf("Media de pecas de homens da classe B: %0.f\n", media );

media = 0;
if ( total_mulher_a > 0)
media = (total_peca_mulher_a / total_mulher_a);
printf("Media de pecas de mulheres da classe A: %0.f\n", media );

media = 0;
if ( total_mulher_b > 0)
media = (total_peca_mulher_b / total_mulher_B);
printf("Media de pecas de mulheres da classe B: %0.f\n", media );

printf("Operario com o maior salario da empresa: %s\n", operario_maior_salario);

system("pause");
return 0;

}

}

Link para o comentário
Compartilhar em outros sites

Olá,

Dei apenas uma olhada no código e percebi que em 2 locais tinham chaves de bobeira

{ }
, removi.

Para utilizar o strcpy tem que ser em strings ou um vetor de chars, no código estava apenas como um caractere. Tu também esqueceu de inserir o & no scanf do nome.

Segue o código "incompleto", ele esta funcionando de boa porém não testei se tem bugs:


#include <stdlib.h>
#include <string.h>

int main(void)
{

float salario_minimo,folha_mensal,salario,maior_salario,media = 0;

int numero_total_pecas,pecas,total_homens_a,total_homens_b,total_mulher_a,total_mulher_b = 0;
int total_peca_homens_a,total_peca_homens_b,total_peca_mulher_a,total_peca_mulher_b = 0;

char nome[50];
char sexo;
char resposta;
char operario_maior_salario[50];

printf("Informe o salario minimo:");
scanf("%f", &salario_minimo);

do
{

printf("Nome do funcionario: ");
fflush(stdin);
scanf("%s", &nome);
printf("Pecas fabricados no mes: ");
fflush(stdin);
scanf("%d", &pecas);
printf("Sexo do funcionario: ");
fflush(stdin);
scanf("%c", &sexo);

numero_total_pecas = numero_total_pecas + pecas;

// Classe A
if ( pecas <= 30 )
{

salario = salario_minimo;

if ( sexo == 'M' || sexo == 'm' )
{
total_homens_a = total_homens_a + 1;
total_peca_homens_a = total_peca_homens_a + pecas;
}
else
{

total_mulher_a = total_mulher_a + 1;
total_peca_mulher_a = total_peca_mulher_a + pecas;
}

}
else
{


// Classe B

salario = salario_minimo + ( pecas - 30 ) * (0.05 * salario_minimo);

if ( sexo == 'M' || sexo == 'm' )
{
total_homens_b = total_homens_b + 1;
total_peca_homens_b = total_peca_homens_b + pecas;
}
else
{
total_mulher_b = total_mulher_b + 1;
total_peca_mulher_b = total_peca_mulher_b + pecas;
}

}


folha_mensal = folha_mensal + salario;

if ( salario > maior_salario ) strcpy(operario_maior_salario, nome);

printf("Salario do funcionario: %0.f\n", salario);

printf("Deseja inserir novos dados? S - Sim ou N - Nao: ");
fflush(stdin);
scanf("%c",&resposta);

}
while ( resposta != 'N' && resposta != 'n' );

printf("Folha mensal de pagamentos: %0.f\n", folha_mensal);
printf("Total de peças fabricadas no mes: %0.d\n", numero_total_pecas );

media = 0;
if ( total_homens_a > 0)
media = (total_peca_homens_a / total_homens_a);
printf("Media de pecas de homens da classe A: %0.f\n", media );

media = 0;
if ( total_homens_b > 0)
media = (total_peca_homens_b / total_homens_B);
printf("Media de pecas de homens da classe B: %0.f\n", media );

media = 0;
if ( total_mulher_a > 0)
media = (total_peca_mulher_a / total_mulher_a);
printf("Media de pecas de mulheres da classe A: %0.f\n", media );

media = 0;
if ( total_mulher_b > 0)
media = (total_peca_mulher_b / total_mulher_B);
printf("Media de pecas de mulheres da classe B: %0.f\n", media );

printf("Operario com o maior salario da empresa: %s\n", operario_maior_salario);

system("pause");
return 0;

}

#include <stdio.h>

Link para o comentário
Compartilhar em outros sites

Olá,

Dei apenas uma olhada no código e percebi que em 2 locais tinham chaves de bobeira , removi.

Para utilizar o strcpy tem que ser em strings ou um vetor de chars, no código estava apenas como um caractere. Tu também esqueceu de inserir o & no scanf do nome.

Segue o código "incompleto", ele esta funcionando de boa porém não testei se tem bugs:


#include <stdlib.h>
#include <string.h>

int main(void)
{

float salario_minimo,folha_mensal,salario,maior_salario,media = 0;

int numero_total_pecas,pecas,total_homens_a,total_homens_b,total_mulher_a,total_mulher_b = 0;
int total_peca_homens_a,total_peca_homens_b,total_peca_mulher_a,total_peca_mulher_b = 0;

char nome[50];
char sexo;
char resposta;
char operario_maior_salario[50];

printf("Informe o salario minimo:");
scanf("%f", &salario_minimo);

do
{

printf("Nome do funcionario: ");
fflush(stdin);
scanf("%s", &nome);
printf("Pecas fabricados no mes: ");
fflush(stdin);
scanf("%d", &pecas);
printf("Sexo do funcionario: ");
fflush(stdin);
scanf("%c", &sexo);

numero_total_pecas = numero_total_pecas + pecas;

// Classe A
if ( pecas <= 30 )
{

salario = salario_minimo;

if ( sexo == 'M' || sexo == 'm' )
{
total_homens_a = total_homens_a + 1;
total_peca_homens_a = total_peca_homens_a + pecas;
}
else
{

total_mulher_a = total_mulher_a + 1;
total_peca_mulher_a = total_peca_mulher_a + pecas;
}

}
else
{


// Classe B

salario = salario_minimo + ( pecas - 30 ) * (0.05 * salario_minimo);

if ( sexo == 'M' || sexo == 'm' )
{
total_homens_b = total_homens_b + 1;
total_peca_homens_b = total_peca_homens_b + pecas;
}
else
{
total_mulher_b = total_mulher_b + 1;
total_peca_mulher_b = total_peca_mulher_b + pecas;
}

}


folha_mensal = folha_mensal + salario;

if ( salario > maior_salario ) strcpy(operario_maior_salario, nome);

printf("Salario do funcionario: %0.f\n", salario);

printf("Deseja inserir novos dados? S - Sim ou N - Nao: ");
fflush(stdin);
scanf("%c",&resposta);

}
while ( resposta != 'N' && resposta != 'n' );

printf("Folha mensal de pagamentos: %0.f\n", folha_mensal);
printf("Total de peças fabricadas no mes: %0.d\n", numero_total_pecas );

media = 0;
if ( total_homens_a > 0)
media = (total_peca_homens_a / total_homens_a);
printf("Media de pecas de homens da classe A: %0.f\n", media );

media = 0;
if ( total_homens_b > 0)
media = (total_peca_homens_b / total_homens_B);
printf("Media de pecas de homens da classe B: %0.f\n", media );

media = 0;
if ( total_mulher_a > 0)
media = (total_peca_mulher_a / total_mulher_a);
printf("Media de pecas de mulheres da classe A: %0.f\n", media );

media = 0;
if ( total_mulher_b > 0)
media = (total_peca_mulher_b / total_mulher_B);
printf("Media de pecas de mulheres da classe B: %0.f\n", media );

printf("Operario com o maior salario da empresa: %s\n", operario_maior_salario);

system("pause");
return 0;

}

#include <stdio.h>

esta inconpleto?

e o que pode estar faltando

amigo hegaja

valeu

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!