Ir ao conteúdo
  • Cadastre-se

sistema trava apos ser executado


Lívio Neiva

Posts recomendados

apos compilar o programa, eu insiro nome do funcionario e insiro o salario do funcionario, quando pressiono enter o sistema trava.

o que eu faço para resolver???

#include <stdio.h>#include <stdlib.h>#include <strings.h>main (){    char nome[20];    float salbrut,inss,irrf,saliq,total=0;    int x,depend;    for (x=0; x<=5; x++){        printf ("Entre com nome do Funcionario: ");        //gets (nome);        scanf("%s",&nome);        printf("Entre com salario bruto do funcionario: ");        scanf(" %f",salbrut);   // apos ser compilado o programa trava quando eu insiro valores nessa variavel        printf("entre com a quantidade de dependentes: ");        scanf(" %d",&depend);        total= depend+10;        if (salbrut <= 300) {            saliq=salbrut-(salbrut*0.08);        printf("salario bruto com desconto INSS 8%%:....",saliq);                            }    }printf("\n\n");system("pause");}
Link para o comentário
Compartilhar em outros sites

@Lívio Neiva

 

Faltou o '&'...

#include <stdio.h>#include <stdlib.h>#include <strings.h>main (){    char nome[20];    float salbrut,inss,irrf,saliq,total=0;    int x,depend;    for (x=0; x<=5; x++){        printf ("Entre com nome do Funcionario: ");        //gets (nome);        scanf("%s",&nome);        printf("Entre com salario bruto do funcionario: ");        scanf(" %f",&salbrut); // &salbrut        printf("entre com a quantidade de dependentes: ");        scanf(" %d",&depend);        total= depend+10;        if (salbrut <= 300) {            saliq=salbrut-(salbrut*0.08);        //Voce esqueceu de colocar %f para o saliq ....        printf("salario bruto com desconto INSS 8%% %5.1f:....",saliq);        }        //Pular linha...        printf("\n\n");    }printf("\n\n");system("pause");}
Link para o comentário
Compartilhar em outros sites

legal, reconheço que houve falhas infantis da minha parte. mas existe um buff nesse sistema que eu nao entendo porque.

eu declarei a variavel nome como char com 29 carateres pode ser digitado.

se eu digitar a variaval um nome com espaço da buff

Ex. Carlos Algusto (o nome tem 14 caracteres)

#include <stdio.h>#include <stdlib.h>#include <strings.h>int main (void){    char nome[29];    float salbrut,saliq,total;    int x,depend;    total=0;    for (x=0; x<=2; x++){        printf ("Entre com nome do Funcionario: ");        scanf("%s",&nome); // se eu digitar nesse campo um nome com espaço da buff. ex. carlos algusto        printf("Entre com salario bruto do funcionario: ");        scanf("%f",&salbrut);        printf("entre com a quantidade de dependentes: ");        scanf(" %d",&depend);        total= depend*10;        if (salbrut <= 300) {            saliq=salbrut-(salbrut*0.08);            printf("salario bruto com desconto INSS 8%%:....%.2f\n",saliq);        }        if (salbrut >300 && salbrut <= 600 ){            saliq=salbrut-(salbrut*0.09);            printf("salario bruto com desconto INSS 9%%:....%.2f\n",saliq);        }        if (salbrut > 600){            saliq=salbrut-(salbrut*0.10);            printf("salario bruto com desconto INSS 10%%:....%.2f\n",saliq);        }    if (salbrut <=500){        saliq= saliq-(saliq*0.15);        printf("salario bruto com INSS+IRRF 15%%:............%.2f\n",saliq);    }    if (salbrut > 500){        saliq=saliq-(saliq*0.25);        printf("salario bruto com INSS+IRRF 25%%:............%.2f\n",saliq);    }       saliq=saliq+total;       printf("******************************************\n");       printf("nome do Funcionario..........:%s\n ",nome);       printf("Valor do Salario Bruto.......:%.2f\n ",salbrut);       printf("quantos dependentes..........:%i\n ",depend);       printf("Valor do Salario Líquido.......:%.2f\n ",saliq);       printf("*******************************************\n");    }printf("\n\n");system("pause");return 0;}
Link para o comentário
Compartilhar em outros sites

@Lívio Neiva

 

A funcao scanf(); os espaços em brancos sao entendidos como separadores de valores...

 

voce pode usar....

 

fgets(); <------ Mais seguro....

printf ("Entre com nome do Funcionario: ");fflush(stdin); //limpar bufffgets(nome,29,stdin);

gets();

printf ("Entre com nome do Funcionario: ");fflush(stdin); //limpar buffgets(nome); 
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...