Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Cristina2000

C Cálculo potência dando errado

Recommended Posts

Olá! Eu estou com um problema no cálculo das potências de 10. Eu estou usando a biblioteca math.h e a função pow(),

mas ao calcular 10 ao quadrado o resultado é 99 o mesmo acontece com 10 elevado a 4 que dá 9999. Eu estava usando o compilador

DEV C++ e pensei que o problema fosse do compilador então eu instalei o Code::Blocks e o mesmo erro continua. 

Alguém sabe me dizer porque isso está acontecendo? Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou postando o código. Não estou conseguindo usar o botão "code" a tela abre mas fica travada, então postei assim mesmo.

 

 

//24.  São dados dois números inteiros positivos p e q, sendo que
//o número de dígitos de p é menor ou igual ao número de dígitos de q. Verificar se p é um subnúmero de q.
//Exemplos:
//p = 23, q = 57238, p é subnúmero de q.
//p = 23, q = 258347, p não é subnúmero de q.


#include<stdio.h>
#include<math.h>
int main(){
    int p,q,x,y,tot1=0,tot2=0,
        tot3,tot4,tot5,pot1,pot2,
        num1,num2,cont=0;
    printf("Digite p e q\n");
    scanf("%d %d",&p,&q);
    x=p;
    y=q;
    while(x>=1){
                 x=x/10;
                 tot1++;
                 }
                 tot3=tot1-1;
                 tot5=tot3;
    while(y>=1){
                 y=y/10;
                 tot2++;
                 }
                 tot4=tot2-1;
                 if(tot1>tot2){
                 printf("p nao pode ser maior que q digite outros numeros\n");
                 system("pause");
                 }
                 pot1=pow(10,tot3);   //calculo da potencia de p 
                 pot2=pow(10,tot4);   //calculo da potencia de q              
                 num1=p/pot1;
                 num2=q/pot2;
                 tot3--;
                 tot4--;                 
                 while(tot3>=0){
                                if(num1==num2){
                                cont++;
                                pot1=pow(10,tot3);
                                pot2=pow(10,tot4);
                                printf("pot2=%d\n",pot2);
                                num1=p/pot1;
                                num2=q/pot2;
                                tot3--;
                                tot4--;
                                }
                                else{
                                        //Não terminei ainda esta condição
                                        //parei porque os calculos estão dando errados
                                }
                                }
                                if(cont==tot5)
                                printf("O numero %d e subnumero de %d\n",p,q);
                                else
                                printf("O numero %d nao e subnumero de %d",p,q);
    system("pause");
    return 0;
}


 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Cristina2000

 

O procedimento pow(...) retorna tipo real [Float ou Double] no caso, é double.  Daí o ideal é que a variável que receberá o retorno seja também do tipo double com isso evita truncagem, é muita mais consistente e legal.

 

Online GDB: math :: pow 

Editado por AnsiC
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×