Ir ao conteúdo

Posts recomendados

Postado

Porque o código abaixo da process returned 21(0x15) se a função main é void??

Pelo o que eu aprendi estudando por conta a main nem deveria retorna nada e muito menos o valor 21;

 

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

void main(void){
    float cateto_a=0;
    float cateto_b=0;
    float hipotenusa(float a, float b);

    printf("Digite o cateto A:");
    scanf("%f",&cateto_a);
    printf("Digite o cateto B:");
    scanf("%f",&cateto_b);
    printf("A hipotenusa e' %.2f",hipotenusa(cateto_a,cateto_b));
}

float hipotenusa(float a, float b){
    float hip=0;
    a=a*a;
    b=b*b;
    hip=sqrt(a+b);
    return(hip);
}

 

  • Curtir 1
Postado

main() deve ser do tipo int, você não escreve isso no código mas esta função é chamada como qualquer outra função num programa, é a primeira função que é chamada no programa, e o escopo que chama a função main() espera que ela retorne um valor inteiro (que indica o status em que o programa foi finalizado, ou seja se acabou normalmente retorna 0, ou retorna um número diferente de zero se houve algum erro).

 

E se o seu main() não retorna nada então houve um erro.

  • Curtir 2
Postado

Existe algum lugar onde encontro a padronização do sistema? Sei que se da zero é porque funcionou corretamente, se retorna negativo e porque deu erro, se retorna positivo e porque concluiu com adversidades, onde encontro as referencias para saber qual foi a adversidade exemplo 21(0x15).

 

Mas eu nem sabia que a main e necessariamente int.

  • Curtir 1
Postado
1 minuto atrás, Jessé P. de Melo disse:

Existe algum lugar onde encontro a padronização do sistema? Sei que se da zero é porque funcionou corretamente, se retorna negativo e porque deu erro, se retorna positivo e porque concluiu com adversidades, onde encontro as referencias para saber qual foi a adversidade exemplo 21(0x15).

 

Mas eu nem sabia que a main e necessariamente int.

Isto é uma convenção, mas não há padrão pois o programador pode definir os erros ou aletas relevantes para o programa específico, assim como mensagens de erro ou alerta que sejam relevantes para o programa em questão.

  • Curtir 2
Postado

@Jessé P. de Melo     seu código retorna o valor 21( 0x15) por que depende de quantos zeros você digitou na entrada , e a cada zero digitado ele soma hum ao valor de referencia que é 20 , e nesse caso você digitou um zero  e o que está dentro dos parenteses é o referente ao número em hexadecimal , 

  • Curtir 1
Postado

Olá! 

Eu suspeito que; Quem retorna é o contêiner [ou inglês: container].

Por exemplo: Se a IDE é Code :: Block então ao executar o programa por meio da IDE um outro programa [container] é quem o recebe, daí ao finalizar o programa com void dentro do container é o container quem recebe o sinal mudo do programa void, este por sua vez, retorna o status da operação para IDE no local aonde fica o relatório de execução. Ou seja, quem retornou 0x15 foi o programa container e não o código do programa implementado com void main().

 

:lol:

 

 

adicionado 7 minutos depois
Em 18/05/2018 às 19:47, Jessé P. de Melo disse:

encontro as referencias para saber qual foi a adversidade exemplo 21(0x15).

Eu suspeito que esse é o sinal para erro em tempo de execução. Mas esquenta com isso não, tem coisa mais uteis a estudar.

  • Curtir 3

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!