Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paracatu

[Resolvido] Números Inteiros

Recommended Posts

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.