drk1 0 Denunciar post Postado Outubro 27, 2011 Boa tarde Srs. Estou com o seguinte problema em mãos, me parece meio simples mas não consigo uma logica pra resolve-lo estou iniciando agora na parte de Estruturas de Repetição Faça um programa em C que leia 5 números, um de cada vez, conte quantos deles são negativos, mostrando esta informação. Obs:"No questionário ele pede para ser resolvido em "FOR"" Existem mais exercícios desse mesmo padrão então se puderem resolver este e tentarem me explicar a logica para eu resolver os outros fico muito grato! Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Outubro 27, 2011 int i, number, counter; for(i = 0; i < 5; ++i) { scanf("%d", number); if(number < 0) ++counter; } printf("Numero de numeros (\?) negativos: %d", counter); Bom, eu não costumo dar o código assim, de graça, mas estou inspirado hoje ;D É o seguinte, tem um laço de repetição com a variável de controle chamada i. Toda vez que o loop se repete, ela é incrementada em 1. Então, o loop vai ser executado com ela com o valor 0, depois na repetição, com valor 1, depois 2, 3, 4. Ou seja: 5 instâncias do loop. Lembre-se que em programação, começamos a contar do 0, não do 1. Por isso, 0, 1, 2, 3, 4, e NÃO 1, 2, 3, 4, 5. Afinal, o 0 é um número tão perfeito quanto os outros, porque essa discriminação? Aí, em cada instância do loop, pegamos um valor com scanf e se o número for menor que zero (ou seja, negativo), aumentamos no contador. Aí quando acabar o loop, é só mostrar o valor. Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
drk1 0 Denunciar post Postado Outubro 27, 2011 ahaha muito grato pelo codigo, me falhava a logica mesmo, nem era tanto pelo codigo eu precisava de uma "breve explicaçao" que voce forneceu, por isso fico grato :DD dar codigo pronto = voltar novamente um dia para chupinhar codigo denovo explicar como o fez = entende e nao resmunga mais oiueiouae vlw, abraço! Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Outubro 27, 2011 Cuidado com o tipo do argumento esperado pela scanf. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Outubro 27, 2011 Nada ;D Realmente, concordo com você, drk1... Problema resolvido? Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites
guidjos 65 Denunciar post Postado Outubro 30, 2011 Aplicando as devidas correções (ainda que ignorando o retorno de scanf para tratamento de erros): int i, number, counter = 0; for(i = 0; i < 5; ++i) { scanf("%d", &number); if(number < 0) ++counter; } printf("Numero de numeros (\?) negativos: %d", counter); Compartilhar este post Link para o post Compartilhar em outros sites
Renato Utsch 24 Denunciar post Postado Outubro 30, 2011 Lol, como que eu esqueci de por o = 0 no counter? =P Obrigado por lembrar guidjos... Abraços :D Compartilhar este post Link para o post Compartilhar em outros sites