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

Programa compila, executa mas não dá certo


xinaidao

Pergunta

Sou novo no fórum. Li as regras, tomara que não esteje infringindo nenhuma.

Estou fazendo CC e uso o compilador Borland Turbo C/C++ v1994.

eu compilo executo mas dai não corresponde ao que eu quero.

NÃO É UM TRABALHO DE FACULDADE, É UM EXERCICIO TIRADO DO LIVRO("FUNDAMENTO DE PROGRAMAÇÃO DE COMPUTADORES");

Segue exercicio:

fábrica tem 15 trabalhadores; classe 1 produz até 30 peças mês, classe 2 de 31 a 35 peças e classe 3 mais que 35 peças.

Salário; classe 1 = 1 salario minimo

classe 2= salario minimo+3% do salario minimo por peça

classe 3= '' +5% '' " " " "

´

Número do operário e seu salário, total folha de pagamento, número de peças fabricada por mês, média de peças feitas por homens e média feita por mulheres e numero do operário com maior salário.

segue o código.

#include<stdio.h>

#include<stdlib.h>

int x, pecas, Total_pecas, Contador_h, Contador_m;

float salariofuncionario, Folha_pagamento, Media_pecas_h, Media_pecas_m;

char sexo;

int main()

{

Total_pecas=0;

Contador_h=0;

Contador_m=0;

Folha_pagamento=0;

Media_pecas_h=0;

Media_pecas_m=0;

for (x=0; x<=14; x++)

printf("Digite o sexo do funcionario", sexo);

scanf("%c", &sexo);

printf("Digite quantidade de pecas do funcionario", pecas);

scanf("%d", &pecas);

{

if (pecas<=30)

salariofuncionario=300;

if (pecas>31 && pecas<=35)

salariofuncionario=300+((pecas-30)*0,3);

if (pecas>35)

salariofuncionario=300+((pecas-30)*0,05);

}

Folha_pagamento=Folha_pagamento+salariofuncionario;

Total_pecas=Total_pecas+pecas;

if (sexo=='m')

{

Contador_h=Contador_h+1;

Media_pecas_h=Total_pecas/Contador_h;

}

if (sexo=='f')

{

Contador_m=Contador_m+1;

Media_pecas_m=Media_pecas_m/Contador_m;

}

printf("O salario do funcionario ‚ %f", salariofuncionario);

return(0);

}

Obrgado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Fiz algumas correções.

Roda aí para ver no que dá...

#include <stdio.h>
#include <stdlib.h>
#include <conio.h> /* Inclua a conio.h para usar a funcao getch().*/
#include <ctype.h> /* Inclua a ctype.h para usar a funcao tolower() */

int main(int argc, char **argv)
{
    int x, pecas, Total_pecas=0, Contador_h=0, Contador_m=0;
    float salariofuncionario=0, Folha_pagamento=0, Media_pecas_h=0, Media_pecas_m=0;
    char sexo;
    for (x=0; x<=14; x++)
    {
      printf("Digite o sexo do funcionario:\n");
      sexo=tolower(getch()); /* Inclua a biblioteca conio.h e ctype.h para usar esse comando! */
      system("CLS"); /* Limpa a tela */
      printf("Digite quantidade de pecas do funcionario:\n");
      scanf("%d", &pecas);
      system("CLS"); /* Limpa a tela */
    }
    if (pecas<=30)
      salariofuncionario=300;
    if (pecas>31 && pecas<=35)
      salariofuncionario=300+((pecas-30)*0,3);
    if (pecas>35)
      salariofuncionario=300+((pecas-30)*0,05);
    Folha_pagamento=Folha_pagamento+salariofuncionario;
    Total_pecas=Total_pecas+pecas;
    if (sexo=='m')
    {
      Contador_h=Contador_h+1;
      Media_pecas_h=Total_pecas/Contador_h;
    }
    if (sexo=='f')
    {
      Contador_m=Contador_m+1;
      Media_pecas_m=Media_pecas_m/Contador_m;
    }
    printf("O salario do funcionario e: %f\n", salariofuncionario);
    getch(); /* Inclua a biblioteca conio.h para usar esse comando! */
    return 0;
}

Acrescentei essas duas funções:

getch(): Grava um caracter de acordo com a tecla pressionada sem precisar apertar ENTER (inclua a biblioteca conio.h para usá-la).

tolower(): Transforma a letra digitada em minúsculo (inclua a biblioteca ctype.h para usá-la).

Link para o comentário
Compartilhar em outros sites

  • 0

Também fiz um aqui de bobeira...

#include <stdio.h>
#define QTDE_OPERARIOS 15
#define SALARIO_MINIMO 540

int main(){
    int i, operarios[QTDE_OPERARIOS], pecas[QTDE_OPERARIOS], totalPecas=0, maiorSalario=0, maiorGanhador=0, qtdeFem=0, qtdeMasc=0;
    char sexo[QTDE_OPERARIOS];
    float mediaMasc=0, mediaFem=0, salarios[QTDE_OPERARIOS], totalPagamento=0;

    printf("Cadastro de Operarios\n\n");
    for(i=0;i<QTDE_OPERARIOS;i++){
        printf("Numero do operario: ");
        scanf("%d", &operarios[i]);
        do {
               printf("Digite o sexo (M para masculino, F para feminino): ");
               fflush(stdin);
               scanf("%c", &sexo[i]);
               sexo[i] += (sexo[i] == 70 || sexo[i] == 77) ? 32 : 0;
        } while (sexo[i] != 102 && sexo[i] != 109);
        printf("Numero de pecas fabricadas: ");
        scanf("%d", &pecas[i]);
        totalPecas += pecas[i];
        printf("\n");
    }

    for(i=0;i<QTDE_OPERARIOS;i++){
        if(sexo[i] == 'm'){
            mediaMasc += pecas[i];
            qtdeMasc++;
        } else {
            mediaFem += pecas[i];
            qtdeFem++;
        }

        if(pecas[i] <= 30){
            salarios[i] = SALARIO_MINIMO;
        } else if(pecas[i] > 30 && pecas[i] <= 35){
            salarios[i] = SALARIO_MINIMO + (pecas[i] * (SALARIO_MINIMO * 0.03));
        } else {
            salarios[i] = SALARIO_MINIMO + (pecas[i] * (SALARIO_MINIMO * 0.05));
        }
        totalPagamento += salarios[i];
    }

    mediaMasc /= qtdeMasc;
    mediaFem /= qtdeFem;

    for(i=0;i<QTDE_OPERARIOS;i++){
        if(salarios[i] > maiorSalario){
            maiorSalario = salarios[i];
            maiorGanhador = operarios[i];
        }
    }

    printf("\nTotal da Folha de Pagamentos: R$ %0.2f\nMedia de pecas masculina: %0.2f\nMedia de pecas feminina: %0.2f\nTotal de pecas fabricadas: %d\nOperario com maior salario: %d\n", totalPagamento, mediaMasc, mediaFem, totalPecas, maiorGanhador);

return(0);
}

Bem diferente, mas também válido.

Bruce845, posso estar enganado, mas vosso código apresenta um problema...

A cada vez que o usuario digitar as informações dos operarios, tais informações serão sobreescritas. Ou seja, só vai valer as informações do último operário.

Faz um teste de mesa aí =)

Editado por mJi
Link para o comentário
Compartilhar em outros sites

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...