diegoluis89 Postado Setembro 15, 2014 Denunciar Share Postado Setembro 15, 2014 Sou novo em c, gostaria de saber se é possível escrever um programa que faça calculos com numeros grades.. do tipo 10^20. creie este: #include<stdio.h> #include<math.h> main(){ long int x, n, pot; printf("Este programa calcula a potencia, dado a base x e o expoente n.\nPor favor, entre com a base x\n"); scanf("%ld", &x); printf("Agora entre com a potencia n\n"); scanf("%ld", &n); pot=pow(x,n); printf("O resultado de %ld elevado a %ld é: %ld\n", x, n, pot); return 0; } mas quando vou calcular potencias grandes, da um numero errado. alguém tem alguma ideia? Obg. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raphaelhelper Postado Outubro 6, 2014 Denunciar Share Postado Outubro 6, 2014 (editado) Olá, no momento estou na faculdade e aqui na sala que me encontro não tem a linguagem C, portanto, tentarei sanar uma resolução para o seu caso quando chegar em casa. No entanto, apenas para adiantar, não sei se você sabe, mas se representarmos uma potenciação com valores grandes, como por exemplo: "10^20", perceba que o resultado será em forma cientifica, pois o valor do resultado do tipo inteiro não será suportado, e por isso o transforma para uma notação cientifica, no caso 10^20 será 1e+20. Tenho certeza de que seja impossível ser demonstrado um valor inteiro nesse tipo de caso, onde o resultado da potenciação será demasiadamente grande. Até porque há um limite para o valor que será assumido nessa variável do tipo inteiro. Editado Outubro 6, 2014 por Raphaelhelper Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Raphaelhelper Postado Outubro 7, 2014 Denunciar Share Postado Outubro 7, 2014 (editado) Olá, cheguei em casa... rs' Respondendo a sua pergunta: Sim, é possível criar um programa que faça cálculos com números grandes.. do tipo 10^20. Neste caso, como teremos um valor enorme não se utiliza variável do tipo int ou long int. Ao invés disso, o tipo de variável que deverá ser empregada deverá ser do tipo double, pois este irá suportar o resultado de 10^20. Agora tome cuidado!! ainda para a variável do tipo double, existe uma limitação no quanto poderá ser armazenado nesse tipo de variável. Se quiser analisar o meu código, fique a vontade: #include <stdio.h> #include <math.h> int main() { int b, p; double resultado; printf("Informe o valor da base\n"); scanf("%d",& B); printf("Informe o valor da potencia\n"); scanf("%d",&p); resultado = pow(b,p); printf("O valor de %d elevado a %d sera %.00f.",b,p,resultado); return 0; } Espero ter ajudado' Editado Outubro 7, 2014 por Raphaelhelper Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
diegoluis89
Sou novo em c, gostaria de saber se é possível escrever um programa que faça calculos com numeros grades.. do tipo 10^20.
creie este:
Link para o comentário
Compartilhar em outros sites
2 respostass 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.