Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Ceifador1998

programação com erro!

Recommended Posts

sou novo na programação e recebi estas atividades mas não sei o que esta errado nem como resolver, por favor me ajudem.

 

Enquanto número informado for maior que 0, imprimir o dobro do mesmo.

 

#include <stdio.h>
main ()
{
    int numero;
    
    do
    {printf("\n digite um numero:");
    scanf("%f", & numero);
    
    printf("\n o dobro de %2f he %2f \n",numero,(numero*2));
    }
system("pause");}

 

e essa eu não faço ideia de como fazer.

 

6 - Entrar com o salário de uma pessoa e imprimir o desconto do INSS segundo a tabela abaixo. Após imprimir o desconto, pedir se deseja continuar, se digitar “S”, continuar pedindo novo número se digitar “N”, sair do programa.

 

Menor ou igual a R$600,00                                  Isento

Maior que R$600,00 e menor que R$1200,00     20%

Maior que R$1200,00 e menor que R$2000,00   25%

Maior que R$2000,00                                           30%

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

Está usando do.. while.

Falou o while.

http://linguagemc.com.br/comando-do-while/

 

Obs: use o código dentro da tag:

#include ....
  //etc

 

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Elert  o segundo você pode fazer assim...
 

#include <stdio.h>

main()
{
	volta:
	int numero;
	printf("NUMERO");
	scanf("%d",&numero);
	if(numero <= 600)
	{
		printf("ISENTO");
		goto volta;
	}
	if(numero >= 600 && numero <= 1200)
	{
		numero = numero * 0.2;
		printf("Desconto de: %d",numero);
		goto volta;
	}
}

 

 0.1 equivale a 10%,0.2 a 20% e por ai vai...
 A parte se deseja continuar você pode fazer ele perguntar e capturar S pra sim e N pra não, caso seja sim você usa goto pra voltar

Editado por Xaws
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Obrigado me ajudaram bastante:tw_blush:

    mas agora tenho outra duvida, é sobre o comando while, quero que quando chegar no while de a seguinte mensagem (DESEJA CONTINUAR? SE SIM VOLTAR AO INICIO E SE NÃO FECHAR O PROGRAMA) mas não sei onde coloco se é no final de cada IF ou antes do fim dos comandos?

     

    #include <stdio.h>

    main()
    {
        int numero;
        printf("digite seu salario\n");
        scanf("%d",&numero);
        if(numero < 600)
        {
            printf("ISENTO\n");
        }
        if(numero >= 600 && numero <= 1200)
        {
            numero = numero * 0.2;
            printf("Desconto de: %d\n",numero);
        }
            if(numero >= 1200 && numero < 2000)
        {
            numero = numero * 0.25;
            printf("Desconto de: %d\n",numero);
        }
            if(numero >= 2000)
        {
            numero = numero * 0.3;
            printf("Desconto de: %d\n",numero);
        }
        while (1)
      }
     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Esse seu exercício so precisa mostrar o desconto? Se for você pode fazer algo assim:

     

    #include <stdio.h>
    
    int main()
    {	
    	float salario;
    	char opc;
    
    	do {
    		printf("Digite seu salario: ");		
    		scanf("%f", &salario);		
    
    		int descontoINSS = 0;
    		if(salario <= 600) {
    			descontoINSS = 0;
    		} else if(salario > 600 && salario <= 1200) {
    			descontoINSS = 20;
    		} else if(salario > 1200 && salario <= 2000) {
    			descontoINSS = 25;
    		} else if(salario > 2000) {
    			descontoINSS = 30;
    		}
    
    		float valorDesconto = (salario / 100) * descontoINSS;
    		float salarioCorrigido = salario - valorDesconto;
    		
    		if (descontoINSS == 0) {
    			printf("ISENTO \n");
    		} else {
    			printf("Desconto de: %d%% \n", descontoINSS);
    			printf("Valor do desconto: %.2f \n", valorDesconto);
    			printf("Salario corrigido: %.2f \n", salarioCorrigido);
    		}
    
    		printf("Deseja continuar? (S/N): ");
    		scanf(" %c", &opc);
    
    	} while(opc == 's' || opc == 'S');
    
    	return 0;
    }

     

     

    Editado por Benjamin Breeg
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Benjamin Breeg Creio que ele não queira mostrar o desconto e sim a porcentagem de desconto

    • Obrigado 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Hehe então.. eu achei estranho mas foi  o que entendi do enunciado.

     

    fiz a correção.

     

     

     

    • Curtir 1
    • Obrigado 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • obrigado!!!

    adicionado 32 minutos depois

     

    21 horas atrás, Benjamin Breeg disse:

    } while(opc == 's' || opc == 'S');

    porque não é "s" e "n"? não entendi essa parte, sei que 0 é igual a falso e 1 igual a verdadeiro mas porque maiúsculo e minusculo? também não entendi as duas barras retas no meio para separar, mas mesmo assim me ajudo bastante fera:D

    Editado por Elert

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Então esse barra " | " chama pipe, o || quer dizer or (ou), é um operador para fazer operações com valores lógicos verdadeiro ou falso, enquanto a entrada for s em minúsculo ou S em maiúsculo ele repete o loop caso seja N ou qualquer outra letra ele sai.

     

    Eu recomendo que você estude bastante essa parte de operadores relacionais, lógicos, aritméticos antes de avançar, eu vejo que você ja esta em condicionais, laços de repetição e ainda tem dificuldade com essa parte que é vital. Faça um estudo sobre lógica de programação para aprender e fixar melhor esses conceitos.

     

    Respondendo sua pergunta, teria como só aceitar uma entrada especifica tipo s, S ou n, N mas ai demanda um pouco mais de código, na pratica o teste lógico funcionaria da mesma maneira porém com a restrição de entrada . Não sei se é o melhor jeito de fazer isso mas fica algo assim:

     

    #include <stdio.h>
    
    int main()
    {	
    	int resp;	
    
    	do {
    		
    		/* CODIGO */
      		/* CODIGO */
    
    		printf("Deseja continuar? (S/N): ");
    		resp = getchar();
        	if (resp == '\n') {
        		resp = getchar();	
    		} 
        	while (resp != 'n' && resp != 'N' && resp != 's' && resp != 'S') {
            	printf("\nEntrada invalida, escolha (s/S/n/N): ");
            	resp = getchar();
            	if (resp == '\n') {
            		resp = getchar();	
    			}			 
    		}
        
    	} while(resp == 'S' || resp == 's');
    
    	return 0;
    }

     

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×