Ir para conteúdo
Fórum Script Brasil
  • 0

Erro "conflicting types for 'function'"


Subnik

Pergunta

Estou tendo esse erro toda hora que tento compilar esse código:

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

//função para dividir dois inteiros
//linha 6 
int div(int a, int b){
    int quo;
    printf("Digite o primeiro número: ");
    scanf("%d", &a);
    printf("Digite o segundo número: ");
    scanf("%d", &b);
    if (a>b){
    quo=a/b;
    }
    else {
        quo=b/a;
    }
    printf("\n O resultado é: %d\n", quo);
}

//função para fazer raíz de um número
//linha 21
int sqrt(float n){
  float a, pro;
    print("Digite um número para fazer sua raíz quadrada: ");
    scanf("%f", &n);
    a=n;
    while(a>0){
        a = a - 0.001;
        pro = a * a;
        if (pro==n){
            printf("A raíz quadrada é: %d", a);
            break;
        }
    }
}

int main(){
    setlocale(LC_ALL,"PORTUGUESE");
    float resultado, n;
    resultado = sqrt(n);
    return 0;
}

Tanto na linha 6 quanto na 21, aparecem "conflicting types for div" e "conflicting types for sqrt", respectivamente.

Onde está o erro no meu código?

Obrigado!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Primeiro: Já existe uma função com o nome div no arquivo stdlib.h. Então, ou comente esse include ou mude o nome da sua função.

Segundo: As suas funções tem um tipo de retorno definido, porém não estão retornando nada. Inclua return nas funções:

int div(int a, int b){
    int quo = 0;
    if (a>b){
    quo=int(a/b);
    }
    else {
        quo=int(b/a);
    }
    return quo;
}

//função para fazer raíz de um número
//linha 21
int sqrt(float n){ //Só funciona pra resultados inteiros
  float a, pro;
    a=n;
    while(a>0){
        a = a - 0.001;
        pro = a * a;
        if (abs(pro - n) <= 0.001)
            return (int)a;
    }
   return -1;
}

E depois pra usar:

int main(){
    setlocale(LC_ALL,"PORTUGUESE");
    float n;
    print("Digite um número para fazer sua raíz quadrada: ");
    scanf("%f", &n);
    printf("A raíz quadrada é: %d", sqrt(n));

//    int a, b;
//    printf("Digite o primeiro número: ");
//    scanf("%d", &a);
//    printf("Digite o segundo número: ");
//    scanf("%d", &b);
//    printf("\n O resultado da divisão é: %d\n", div(a, b));
    return 0;
}
Editado por LazaroBinda
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...