Jump to content
Fórum Script Brasil
  • 0

Programa compila, executa mas não dá certo


xinaidao

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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í =)

Edited by mJi
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...