Paracatu 0 Denunciar post Postado Março 13, 2009 Olá galera da imasters... estou iniciando agora nesse mundo da programação e tenho algumas dúvidas quanto à um exercício passado pelo professor. Sei que pode ser uma coisa newbie, mas ninguém nasceu sabendo não é mesmo? Fico grato se alguém puder ajudar. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif O exercicio é o seguinte: 4. Faça um Algoritmo para que dado 4 números quaisquer, positivos, inteiros, calcular a soma deles caso o primeiro seja maior que o terceiro; a multiplicação caso o segundo seja maior que o quarto; a subtração caso o primeiro seja o triplo do quarto; a divisão deles caso o segundo seja a metade do terceiro. Meu código está assim: #include <iostream.h> #include <stdio.h> #include <conio.h> #include <math.h> /*4. Faça um programa para que dado 4 números quaisquer, positivos, inteiros, calcular a soma deles caso o primeiro seja maior que o terceiro; a multiplicação caso o segundo seja maior que o quarto; a subtração caso o primeiro seja o triplo do quarto;a divisão deles caso o segundo seja a metade do terceiro.*/ //Inicio main() { //Declaração das variaveis int a,b,c,d; int soma,mult,sub; float div; //Entrada dos números printf ("Entre com o primeiro n%cmero: ",163); scanf ("%d",&a); printf ("Entre com o segundo n%cmero: ",163); scanf ("%d",&B); printf ("Entre com o terceiro n%cmero: ",163); scanf ("%d",&c); printf ("Entre com o quarto n%cmero: ",163); scanf ("%d",&d); //Condição para que os números sejam positivos. if ((a>0) && (b>0) && (c>0) && (d>0)) //Condição se o primeiro número for maior que o terceiro. if (a>c) { soma = a+b+c+d; printf ("\n\nO resultado da soma de todos os n%cmeros %c: %d",163,130,soma); } else //Condição se o segundo número for maior que o quarto. if (b>d) { mult = a*b*c*d; printf ("\n\nO resultado da multiplica%c%co de todos os n%cmeros %c: %d",135,198,163,130,mult); } else //Condição se o primeiro número for igual ao triplo do quarto. if (a==d+d+d) { sub = a-b-c-d; printf ("\n\nO resultado da subtra%c%co de todos os n%cmeros %c: %d",135,198,163,130,sub); } else //Condição se o segundo número for igual á metade do terceiro. if (b==c/2) { div = a/b/c/d; printf ("\n\nO resultado da divis%co dos n%cmeros %c: %f",198,163,130,div); } getch(); } //Fim Agora as dúvidas são: 1º) Existe alguma maneira de colocar uma condição na entrada dos números para que sejam apenas números inteiros? 2º) Existe algum comando para que o programa reinicie após o uso ao invéz de ter que fechar e abrir novamente? :unsure: Agradeço desde já a atenção! Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 13, 2009 bom primeiro para saber c sao inteiros, é somente msm ler eles como inteiros com o %d. e para repeti-lo use um loop []s Compartilhar este post Link para o post Compartilhar em outros sites
Paracatu 0 Denunciar post Postado Março 13, 2009 Opa... vlw pela ajuda, estava em dúvida se era preciso algum comando para verificar se era um numero inteiro ou só o %d ja bastava. Não vi nada sobre loop ainda, mas vou dar uma pesquisada. Vlw msm quitZAUMM :) Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 13, 2009 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif c quiser ctz ctz msm.. oq você pode fazer é; valor = numero - (int) numero; if (valor == 0) printf("inteiro"); + naum acho necessario []s Compartilhar este post Link para o post Compartilhar em outros sites
Paracatu 0 Denunciar post Postado Março 13, 2009 Ok.. posso usar esse calculo se o numero digitado fosse (ex. 0.80): valor = 0.80 - (int)0.80; ............................ if (valor==0) printf("inteiro"); .......................................... esse (int) frente ao numero 0.80 é valido na operação? o c++ reconhece como inteiro e faz a subtração pelo numero inteiro (ex. esse (int)0.80 seria arredondado para 1)? desculpa a pergunta, mas é curiosidade só, porque quando eu declaro a variavel int o programa não aceita numeros float correto? Malz se falei abobrinha :s Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 13, 2009 esse (int) é um cast. ele pega a parte inteira e despreza a parte decimal.. Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Março 14, 2009 Cara, você não precisa de uma variável nem fazer nenhum tipo de cálculo, se você leu os números como "%d" eles serão inteiros! e outra coisa, se você declarou as variáveis como int, então pode ter total certeza de que não haverá ponto flutuante no seu número. Compartilhar este post Link para o post Compartilhar em outros sites
Paracatu 0 Denunciar post Postado Março 14, 2009 Obrigado Victor e quitZAUMMM pelas respostas, dúvida resolvida. Vlw :) Compartilhar este post Link para o post Compartilhar em outros sites