Ir para conteúdo
Fórum Script Brasil

Lestarh

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre Lestarh

Lestarh's Achievements

0

Reputação

  1. Pessoal, consegui. Decidi organizar com a struct numa biblioteca, as chamadas das funcoes em outra. e o restanta no main() principal. Vejam só: //estru.h struct Funcionario { char sexo; int estCivil; int idade; float salario; }; --------------------------------------- //Funções de chamada == chamada.h #include "estrut.h" void lerFuncionario (struct Funcionario *f) { printf("*=*= CADASTRO DE FUNCIONARIOS =*=*\n\n"); printf("INFORME O SEXO: \n\n"); printf("\n F - FEMININO: \n"); printf("\n M - MASCULINO: \n\n"); scanf("%s", &(*f).sexo); printf("\nINFORME O ESTADO CIVIL: \n\n"); printf("\n1 - SOLTEIRO \n"); printf("2 - CASADO \n"); printf("3 - DIVORCIADO \n"); printf("4 - VIUVO \n"); printf("5 - OUTROS \n\n"); scanf("%d", &(*f).estCivil); printf("INFORME A IDADE: \n\n"); scanf("%d", &(*f).idade); printf("INFORME O SALARIO: \n\n"); scanf("%f", &(*f).salario); } float bonus (struct Funcionario f) { if (f.sexo == 'm'|| f.sexo == 'M') { if (f.estCivil == 1 && f.idade < 30) { return f.salario * 0.25; } if (f.estCivil == 2) { return f.salario * 0.30; } } if (f.sexo == 'f' || f.sexo == 'F') { if (f.estCivil == 2 && f.idade < 40) { return f.salario * 0.30; } if (f.estCivil == 2 && f.idade >= 40) { return f.salario * 0.35; } if (f.estCivil == 1) { return f.salario * 0.25; } } else { printf("\n\nVOCE não POSSUI BONUS."); } } ********************** por fim, o main(): ----------------------------- #include <stdio.h> #include <stdlib.h> #include "chamada.h" main() { struct Funcionario funcionario; lerFuncionario (&funcionario); printf("\n\n\nO BONUS: R$ %.2f \n", bonus(funcionario)); system("pause"); }
  2. Boa tarde a todos! Estou fazendo uma tarefa que solicite alguns dados de um funcionario e retorne bonificação salarial a partir de alguns parâmetros. Bem, eu fiz basicamente toda a estrutura mas estou com dúvida em dois pontos: O primeiro é na "CONDIÇÃO WHILE DE VERIFICAÇÃO DO SEXO" que se encontra na struct. O Segundo está sendo mais complicado pra mim, que seria retornar os valores salariais com as porcentagens devidas e mediante as condições. Se algum puder me dar uma luz eu ficarei grato.. OBS.: Tenho o entendimento de que meu "main()" está completamente errado.. #include <stdio.h> #include <stdlib.h> struct funcionario { char sexo[1]; int estCivil; int idade; float salario; }; void cadastro (struct funcionario *dados) { printf("*** CADASTRO DE FUNCIONARIOS ***\n\n"); printf("INFORME O SEXO: \n\n"); printf("\n F - FEMININO: \n"); printf("\n M - MASCULINO: \n\n"); scanf ("%s", dados->sexo); //testando - *** Ainda Com Erro *** /*while ((dados.sexo =! 'M' || dados.sexo =! 'm') || (dados.sexo =! 'F' || dados.sexo =! 'f')) { printf("\n\nDIGITO INVALIDO!! \n\nINFORME O SEXO: \n\n"); printf("\n F - FEMININO\n"); printf("\n M - MASCULINO"); scanf ("%s", dados->sexo); }*/ //testando printf("\nINFORME O ESTADO CIVIL: \n\n"); printf("\n1 - SOLTEIRO \n"); printf("2 - CASADO \n"); printf("3 - DIVORCIADO \n"); printf("4 - VIUVO \n"); printf("5 - OUTROS \n\n"); scanf("%d", &(*dados).estCivil); printf("INFORME A IDADE: \n\n"); scanf("%d", &(*dados).idade); printf("INFORME O SALARIO: \n\n"); scanf("%f", &(*dados).salario); } float calcBonus (struct funcionario f) { while (f.sexo == 'M' || f.sexo == 'm') { if (f.estCivil == 1 && f.idade < 30) { return 25; if (f.estCivil == 2) { return 30; } } } while (f.sexo == 'F' || f.sexo == 'f') { if (f.estCivil == 1) { return 25; } else if (f.estCivil == 2) { if (f.idade <= 40) { return 30; } else{ return 35; } } } return 0; } main() { struct funcionario unidade; cadastro (&unidade); printf("\n VALOR DA BONIFICACAO: \n\n %.2f %%", calcBonus(/*variavel?*/) ); //Como calcular??? system ("pause"); }
×
×
  • Criar Novo...