• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

seltix

[erro] x^y

8 mensagens neste tópico

viva a todos

estou a criar um programa em C com o calculo 2^i mas os resultados estao incorrectos... por exemplo 2^0 dá 2, 2^1 dá 3 e 2^2 dá 0.... e por ai fora....

o codigo é este :

#include <stdio.h>


int main(void)
{
    printf("res : %d",2^2);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no C o simbolo '^' não é para os expoentes.

para isso usa a função pow da biblioteca math.h.

a sintaxe é pow(base, expoente),  e devolve o resultado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no C o simbolo '^' não é para os expoentes.

para isso usa a função pow da biblioteca math.h.

a sintaxe é pow(base, expoente),  e devolve o resultado.

humm entao x^y serve para que ja agora???

entao agora utilizando o pow ajuda me la a esplicar isto :

#include <stdio.h>
#include <math.h>

int valor=45,base1=10,base2=2;


int main(void)
{
    int i,novo_valor=0;
    for(i=0;valor!=0;i++)
    {
        novo_valor = pow(10,i);
        printf("novo valor = %i : i = %i\n",  novo_valor, i );
        valor /= base2;
    }
}

com o seguinte resultado :

novo valor = 1 : i = 0
novo valor = 10 : i = 1
novo valor = 99 : i = 2
novo valor = 1000 : i = 3
novo valor = 9999 : i = 4
novo valor = 100000 : i = 5

eu começo a perguntar me "afinal qual de nos dois n sabe fazer contas?" loool

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim sim eu tou a usar a funcao pow mas como podes ver os resultados estao errados... e o codigo é so aquele...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu obtenho isto:

novo valor = 1 : i = 0
novo valor = 10 : i = 1
novo valor = 100 : i = 2
novo valor = 1000 : i = 3
novo valor = 10000 : i = 4
novo valor = 100000 : i = 5

De qualquer forma, o problema poderá ser derivado de estares inteiros com funções que trabalham com doubles.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora