Ir para conteúdo

Arquivado

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

Gustavo Rodrigues Torre

[Resolvido] Programa

Recommended Posts

Voltei das férias

E neste tempo eu fiz este programa mas não sei por que não esta mostrando o valor de X correto

Onde fui que eu errei?

 

/*INSS*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

float x,sc;
int sa;

main()

{  
									
printf("\n Digite o seu salario atual: ");
scanf("%d",&sa);

	   if (sa<=600) 
	   {
	   x = sa * (0/100);
	   sc = sa-x;
	   printf("\n Isento");
	   printf("\n\n");
	   }
		if ((sa>=600) && (sa<=1200))
		{
		x = sa * (20/100);
		sc = sa - x;
		printf("\n O seu salario corrigido e de:%.3f",sc);
		printf("\n\n");
		}
		else
			if ((sa>=1200) && (sa<=2000))
			{
			x = sa * (25/100);
			sc = sa - x;
			printf("\n O seu salario corrigido e de:%.3f",sc);
			printf("\n\n");
			}
		else
			   if (sa>=2000)
			   {
			   x = sa * (30/100);
			   sc = sa - x;
			   printf("\n O seu salario corrigido e de:%.3f",sc);
			   printf("\n\n");
			   }
printf("\n\n");
system("pause");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ñ entendi pq você faz isso:

x = sa * (0/100);
num é + facil escrevre q x recebe 0?

 

ao invez de fazer essas contas tds:

x = sa * (20/100);
.
x = sa * (25/100);
.
x = sa * (30/100);
altere por isso:

x = sa * 0.2;
.
x = sa * 0.25;
.
x = sa * 0.3;
e arrume seus ifs pq ele esta assim:

if (sa<=600)
e no de baixo assim:

if ((sa>=600) && (sa<=1200))
ow seja jah q você num coloco um 'else if' c o cara digitar 600 sairá as 2 respostas!!

 

volte a postar caso haja dúvidas!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais como eu vou arrumar os ifs?

 

ñ entendi pq você faz isso:

x = sa * (0/100);
num é + facil escrevre q x recebe 0?

 

ao invez de fazer essas contas tds:

x = sa * (20/100);
.
x = sa * (25/100);
.
x = sa * (30/100);
altere por isso:

x = sa * 0.2;
.
x = sa * 0.25;
.
x = sa * 0.3;
e arrume seus ifs pq ele esta assim:

if (sa<=600)
e no de baixo assim:

if ((sa>=600) && (sa<=1200))
ow seja jah q você num coloco um 'else if' c o cara digitar 600 sairá as 2 respostas!!

 

volte a postar caso haja dúvidas!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o primeiro if é soh você colocar um else, assim:

if (sa<=600) 
	   {
	   x = sa * (0/100);
	   sc = sa-x;
	   printf("\n Isento");
	   printf("\n\n");
	   }
	   else
		  if ((sa>=600) && (sa<=1200))
os outros você tem q decidir:

if ((sa>=600) && (sa<=1200))
.
if ((sa>=1200) && (sa<=2000))
c o cara digitar 1200 é pra aparecer ql??

c bem q ele vai passar pelo primeiro e c a condição for verdadeira ele vai fazer soh esse, + verifique isso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz como você tinha falado para arrumar as porcentagens

Mas na hora de mudar esta parte eu não sei

 

else
		if ((sa>=600) && (sa<=1200))
		{
		x = sa * 0.02;
		sc = sa - x;
		printf("\n O seu salario corrigido e de:%.3f",sc);
		printf("\n\n");
		}
		else
			if ((sa>=1200) && (sa<=2000))
			{
			x = sa * 0.25;
			sc = sa - x;
			printf("\n O seu salario corrigido e de:%.3f",sc);
			printf("\n\n");
			}

o primeiro if é soh você colocar um else, assim:

if (sa<=600) 
	   {
	   x = sa * (0/100);
	   sc = sa-x;
	   printf("\n Isento");
	   printf("\n\n");
	   }
	   else
		  if ((sa>=600) && (sa<=1200))
os outros você tem q decidir:

if ((sa>=600) && (sa<=1200))
.
if ((sa>=1200) && (sa<=2000))
c o cara digitar 1200 é pra aparecer ql??

c bem q ele vai passar pelo primeiro e c a condição for verdadeira ele vai fazer soh esse, + verifique isso!

 

Eu fiz como você tinha falado para arrumar as porcentagens

Mas na hora de mudar esta parte eu não sei

 

else
		if ((sa>=600) && (sa<=1200))
		{
		x = sa * 0.02;
		sc = sa - x;
		printf("\n O seu salario corrigido e de:%.3f",sc);
		printf("\n\n");
		}
		else
			if ((sa>=1200) && (sa<=2000))
			{
			x = sa * 0.25;
			sc = sa - x;
			printf("\n O seu salario corrigido e de:%.3f",sc);
			printf("\n\n");
			}

o primeiro if é soh você colocar um else, assim:

if (sa<=600) 
	   {
	   x = sa * (0/100);
	   sc = sa-x;
	   printf("\n Isento");
	   printf("\n\n");
	   }
	   else
		  if ((sa>=600) && (sa<=1200))
os outros você tem q decidir:

if ((sa>=600) && (sa<=1200))
.
if ((sa>=1200) && (sa<=2000))
c o cara digitar 1200 é pra aparecer ql??

c bem q ele vai passar pelo primeiro e c a condição for verdadeira ele vai fazer soh esse, + verifique isso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha tente assim e me diga c corrige o erro:

else
		if ((sa>=600) && (sa<=1200))
		{
		x = sa * 0.2;
		sc = sa - x;
		printf("\n O seu salario corrigido e de:%.3f",sc);
		printf("\n\n");
		}
		else
			if ((sa>1200) && (sa<=2000))
			{
			x = sa * 0.25;
			sc = sa - x;
			printf("\n O seu salario corrigido e de:%.3f",sc);
			printf("\n\n");
			}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A porcentagem esta certa

 

Eu só não sei o que você queria que eu arrumasse nesta parte

 

if ((sa>1200) && (sa<=2000))

 

olha tente assim e me diga c corrige o erro:

else
		if ((sa>=600) && (sa<=1200))
		{
		x = sa * 0.2;
		sc = sa - x;
		printf("\n O seu salario corrigido e de:%.3f",sc);
		printf("\n\n");
		}
		else
			if ((sa>1200) && (sa<=2000))
			{
			x = sa * 0.25;
			sc = sa - x;
			printf("\n O seu salario corrigido e de:%.3f",sc);
			printf("\n\n");
			}

Compartilhar este post


Link para o post
Compartilhar em outros sites

você colocow assim:

if ((sa>=1200) && (sa<=2000))
e no de cima colocow:

if ((sa>=600) && (sa<=1200))
ow seja c o cara digitar 1200 você qr q caia em ql dos if's???

 

tipo ele vai cair no primeiro pq esta na ordem, + era essa sua intenção msm?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os dois ifs são diferentes

No primeiro if o programa verefica se o salário e maior do que 1200

E no segundo if o programa verefica se o salário e maior do que 600

Esta foi o minha intenção

 

Mais isto tornaria o programa errado?

Ou de dificil interpretação?

 

 

você colocow assim:

if ((sa>=1200) && (sa<=2000))
e no de cima colocow:

if ((sa>=600) && (sa<=1200))
ow seja c o cara digitar 1200 você qr q caia em ql dos if's???

 

tipo ele vai cair no primeiro pq esta na ordem, + era essa sua intenção msm?

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim com os 'ifs' certinho, igual estão agora seu programa naum vai dar erro!

 

faça algum teste de mesa e veja como o programa esta reagindo!

 

tanto faz colocar '>=' ow soh '>' pq agora tem o 'else if';

soh falei isso pra você num c atrapalhar nos proximos programas!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda

Fiz vários testes de mesa e os resultados bateram com os feitos em teste de mesa

 

Problema resolvido?

 

assim com os 'ifs' certinho, igual estão agora seu programa naum vai dar erro!

 

faça algum teste de mesa e veja como o programa esta reagindo!

 

tanto faz colocar '>=' ow soh '>' pq agora tem o 'else if';

soh falei isso pra você num c atrapalhar nos proximos programas!

 

[]'s

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.