Ir ao conteúdo

C / Não identifica o comando (bash: f: command not found )


Ir à solução Resolvido por isrnick,

Posts recomendados

Postado

o problema que eu tenho é na parte entre escolher kelvin ou fahrenheit, quando eu vou pra escrever a letra, o programa não funciona, alguém sabe me dizer porque não?

#include <stdio.h>

float nc , nk , nf ; 
char le;

int main(void) {
  
//entrada

  printf("tempreratra em celcius \n");
  scanf("%f", &nc);

  
// aa
  printf("digite f para fahrenheit ou k para kelvin: ");
  scanf("%c", &le );
//condicap
  if( le == 'f' ) {
    nf= (nc* 9/5)+32;   
    printf("A temperatura em fahrenheit é %g", nf);
  }
  else if( le == 'k' ) {
  nk = nc + 273.15 ;
  printf("A temperatura em kelvin é %g", nk );
  } 

return 0;
}

 

  • Triste 1
Postado
  Em 07/05/2020 às 02:41, Leoonardoos disse:

float le;

Expandir  

 

  Em 07/05/2020 às 02:41, Leoonardoos disse:

scanf("%f", &le );

Expandir  

 

'f' e 'k' são caracteres e devem ser armazenados em uma variável do tipo char.

 

No seu programa a variável le é do tipo float, corrija isto. E para ler caractere no scanf precisa usar o especificador %c (o especificador %f é para ler números float).

  • Obrigado 1
  • Solução
Postado

Coloque um espaço antes do %c para descartar o caractere '\n' que ficou sobrando do scanf anterior na entrada padrão (stdin):

scanf(" %c", &le );

 

  • Obrigado 1

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...