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:  
Lucas_Gonçalves

C Como utilizar a função pow do C?

Recommended Posts

O programa não esta completo ainda, mas deveria pelo menos rodar a função1. Está ocorrendo o seguinte erro:

> /tmp/ccbRtCar.o: na função `funcao1':

> iniciosimulado02.c:(.text+0x18f): referência indefinida para `pow'

> collect2: error: ld returned 1 exit status

 

Não consegui compreender muito bem o erro e,consequentemente não achei o local do erro.

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

int main() {
    int x = 1;
    imprimemenu();
    questao03(x);
    return (0);
}

int imprimemenu() {
    printf("\n(1)  funcao  1\n");
    printf("\n(2)  funcao  2\n");
    printf("\n(3)  funcao  3\n");
    printf("\n(0)  sair \n");
    return (0);
}

int questao03(int x) {
    int y;
    int z, a;
    while (x != 3) {
        printf("Escolha a opcao do menu: \n");
        scanf("%i", &x);
        switch (x) {
            case 1:
                printf("Digite o numeros do qual será extraída a raiz: \n");
                scanf("%i", &y);
                printf("Digite a ordem da raiz: \n");
                scanf("%i", &z);
                funcao1(y, z);
                printf("O resultado da conta deu: %i \n", a);
                break;
            case 2:
                printf("essa funcao nao retorna \n");
                break;
            case 3:
                printf("essa funcao nao retorna \n");
                break;
            default:
                printf("valores entre 0 e 3\n");
        }
    }
}

int funcao1(int y, int z) {
    int k;
    k = pow(y, 1 / z);
    return (k);
}

 

adicionado 44 minutos depois

estava compilando errado , nesse programa é necessário a biblioteca math logo quando for compilar tem que compilar com o -lm no final.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Lucas_Gonçalves    seu código está funcionando bem, apesar de que o resultado esteja errado, mas o programa não deu nenhum erro,   só não entendi o que você quis dizer com ordem da raiz ,  e por que você colocou para dividir o expoente de 1 , creio que assim não esteja certo não .

Editado por devair1010

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @devair1010  ordem da raiz corresponde ao índice da raiz(2=quadrado,3=cubo...),coloquei 1 dividido por Z que é o índice da raiz,o certo seria 1.0 dividido por Z...pow(Y,1.0/Z) é a mesma coisa que Y^1.0/Z, para Y=9 e Z=2 o resultado é 3,ou seja 9^1.0/2 = raiz quadrada de 9...agora para Z=3 iria calcular a raiz cúbica de 9.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Lucas_Gonçalves     entendi, então vi que estava calculando certo mas na hora de imprimir estava imprimindo o valor errado pois a variável  a     continha um valor ignorado, então coloque essa variável como retorno da funcao1  e  o while da questao03  estava com valor 3 mas o certo seria zero,   então com essas modificações seu código ficou assim :

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    
    int main() {
        int x = 1;
        imprimemenu();
        questao03(x);
        return (0);
    }
    
    int imprimemenu() {
        printf("\n(1)  funcao  1\n");
        printf("\n(2)  funcao  2\n");
        printf("\n(3)  funcao  3\n");
        printf("\n(0)  sair \n");
        return (0);
    }
    
    int questao03(int x) {
        int y;
        int z, a;
        while (x != 0) {
            printf("Escolha a opcao do menu: \n");
            scanf("%i", &x);
            switch (x) {
                case 1:
                    printf("Digite o numeros do qual será extraída a raiz: \n");
                    scanf("%i", &y);
                    printf("Digite a ordem da raiz: se eh quadrada(2) ou cubica(3) \n");
                    scanf("%i", &z);
                    a=funcao1(y, z);
                    printf("O resultado da conta deu: %i \n", a);
                    break;
                case 2:
                    printf("essa funcao nao retorna \n");
                    break;
                case 3:
                    printf("essa funcao nao retorna \n");
                    break;
                default:
                    printf("valores entre 0 e 3\n");
            }
        }
    }
    
    int funcao1(int y, int z) {
        int k;
        k = pow(y, 1.0 / z);
        return (k);
    }

     

    • Obrigado 1

    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

    ×