Leila Sfriso Postado Dezembro 20, 2016 Denunciar Share Postado Dezembro 20, 2016 Pessoal, alguém pode me dizer porque o printf não está reconhecendo os valores? Coloco no uri e dá 60% de erro #include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> int main () { float Nota; int Valor10, Valor100, Valor2, Valor20, Valor5, Valor50, Moeda1, Moeda050, Moeda025, Moeda010, Moeda005, Moeda001, Valor100a, A; scanf("%f", &Nota); if (Nota>0||Nota<1000000.00) { A=(int)Nota; Valor100=Nota/100; Valor50=(A%100)/50; Valor20=((A%100)%50)/20; Valor10=(((A%100)%50)%20)/10; Valor5=((((A%100)%50)%20)%10)/5; Valor2=(((((A%100)%50)%20)%10)%5)/2; Moeda1=((((((A%100)%50)%20)%10)%5)%2)/1; Moeda050=(((((((A%100)%50)%20)%10)%5)%2)%1)/1/2; Moeda025=((((((((A%100)%50)%20)%10)%5)%2)%1)%(1/2))/(1/4); Moeda010=(((((((((A%100)%50)%20)%10)%5)%2)%1)%(1/2))%(1/4))/(1/10); Moeda005=((((((((((A%100)%50)%20)%10)%5)%2)%1)%(1/2))%(1/4))%(1/10))/(5/100); Moeda001=(((((((((((A%100)%50)%20)%10)%5)%2)%1)%(1/2))%(1/4))%(1/10))%(5/100))/1; } printf("\nNOTAS:"); printf("\n %i nota(s) de R$ 100.00", Valor100); printf("\n%i nota(s) de R$ 50.00", Valor50); printf("\n%i nota(s) de R$ 20.00", Valor20); printf("\n%i nota(s) de R$ 10.00", Valor10); printf("\n%i nota(s) de R$ 5.00", Valor5); printf("\n%i nota(s) de R$ 2.00", Valor2); printf("\nMOEDAS:"); printf("\n%i moeda(s) de R$ 1.00\n", Moeda1); printf("\n%i moeda(s) de R$ 0.50\n", Moeda050); printf("\n%i moeda(s) de R$ 0.25\n", Moeda025); printf("\n%i moeda(s) de R$ 0.10\n", Moeda010); printf("\n%i moeda(s) de R$ 0.05\n", Moeda005); printf("\n%i moeda(s) de R$ 0.01\n", Moeda001); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 viniciusps01 Postado Dezembro 24, 2016 Denunciar Share Postado Dezembro 24, 2016 Fala man. Muito simples, o problema é que você está dividindo por zero, certo? Exato! quanto é 1/4. Você me responderá sem pensar muito, que o resultado é 0,25. E estaria correto, em Python por exemplo, isto estaria correto. todavia, na linguagem C, esta operação resultaria em zero. Isso se dá porque os operandos são inteiros, logo, o resultado também será, ou seja, o resultado será a parte inteira desta operação, neste caso o zero! Obviamente, estou simplificando o conceito, dê uma olhada em algum livro, recomendo "C completo e total"!Bons Estudos! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Leila Sfriso
Pessoal, alguém pode me dizer porque o printf não está reconhecendo os valores?
Coloco no uri e dá 60% de erro
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
float Nota;
int Valor10, Valor100, Valor2, Valor20, Valor5, Valor50, Moeda1, Moeda050, Moeda025, Moeda010, Moeda005, Moeda001, Valor100a, A;
scanf("%f", &Nota);
if (Nota>0||Nota<1000000.00)
{
A=(int)Nota;
Valor100=Nota/100;
Valor50=(A%100)/50;
Valor20=((A%100)%50)/20;
Valor10=(((A%100)%50)%20)/10;
Valor5=((((A%100)%50)%20)%10)/5;
Valor2=(((((A%100)%50)%20)%10)%5)/2;
Moeda1=((((((A%100)%50)%20)%10)%5)%2)/1;
Moeda050=(((((((A%100)%50)%20)%10)%5)%2)%1)/1/2;
Moeda025=((((((((A%100)%50)%20)%10)%5)%2)%1)%(1/2))/(1/4);
Moeda010=(((((((((A%100)%50)%20)%10)%5)%2)%1)%(1/2))%(1/4))/(1/10);
Moeda005=((((((((((A%100)%50)%20)%10)%5)%2)%1)%(1/2))%(1/4))%(1/10))/(5/100);
Moeda001=(((((((((((A%100)%50)%20)%10)%5)%2)%1)%(1/2))%(1/4))%(1/10))%(5/100))/1;
}
printf("\nNOTAS:");
printf("\n %i nota(s) de R$ 100.00", Valor100);
printf("\n%i nota(s) de R$ 50.00", Valor50);
printf("\n%i nota(s) de R$ 20.00", Valor20);
printf("\n%i nota(s) de R$ 10.00", Valor10);
printf("\n%i nota(s) de R$ 5.00", Valor5);
printf("\n%i nota(s) de R$ 2.00", Valor2);
printf("\nMOEDAS:");
printf("\n%i moeda(s) de R$ 1.00\n", Moeda1);
printf("\n%i moeda(s) de R$ 0.50\n", Moeda050);
printf("\n%i moeda(s) de R$ 0.25\n", Moeda025);
printf("\n%i moeda(s) de R$ 0.10\n", Moeda010);
printf("\n%i moeda(s) de R$ 0.05\n", Moeda005);
printf("\n%i moeda(s) de R$ 0.01\n", Moeda001);
return 0;
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.