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

Por que o Programa fecha após input


MatheusFerreira

Pergunta

Estou iniciando em linguagem C e estou tentando fazer um programa que pergunta o nome do usuario e a idade e aplica o nome nas mensagens, caso a idade seja menor que 18 ele printa uma mensagem, caso seja maior outra mensagem, porém ao colocar o input nome no scanf ele printa ambas as mensagens e finaliza o programa.

código:

#include <stdio.h>
int main()
{
    char nome;
    int idade;
    printf("olá qual é o seu nome?");
    scanf("%c",&nome);
printf("olá %c quantos anos voce tem?",nome);
scanf("%i",&idade);
if (idade<18)
{
    printf("desculpe voce não tem idade suficiente para usar este programa\n");
}else

printf("em que posso ajuda-lo?");

return 0;
}

 

 resultado no terminal:

olá qual é o seu nome?

resposta do usuario:fulano

olá f quantos anos voce tem?

desculpe voce não tem idade suficiente para usar este programa

...Program finished with exit code 0

Press ENTER to exit console.

 

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 1

Declare "char nome;" como "char nome[tamanho];", sendo "tamanho", um valor como por exemplo 100... "char nome[100];". Isso cria um espaço na memória para 100 letras. Com "char nome" você só pode ler uma única letra. E para ler... não use & no scanf, troque scanf("%c",&nome); por scanf("%c",nome);. e tudo vai funcionar.

Link para o comentário
Compartilhar em outros sites

  • 1
Em 12/02/2021 em 20:49, MatheusFerreira disse:

Voce quer dizer assim?

 #include <stdio.h>
int main(){
    char nome[100];
    int idade;
    printf("ola' qual e' o seu nome?\n");
    scanf("%s",nome);
    printf("ola' %s quantos anos tens?\n",nome);
    scanf("%d",&idade);
    idade < 18? printf("desculpe não tendes idade para usar este programa\n") : printf("em que posso ajuda-lo?\n");

    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 09/02/2021 em 13:57, vangodp disse:

Declare "char nome;" como "char nome[tamanho];", sendo "tamanho", um valor como por exemplo 100... "char nome[100];". Isso cria um espaço na memória para 100 letras. Com "char nome" você só pode ler uma única letra. E para ler... não use & no scanf, troque scanf("%c",&nome); por scanf("%c",nome);. e tudo vai funcionar.

Voce quer dizer assim?

#include <stdio.h>
int main()
{
    char nome[100];
    int idade;
    printf("ola' qual e' o seu nome?\n");
    scanf("%C",nome);
    printf("ola' %C quantos anos tens?\n",nome);
    scanf("%I",&idade);
    idade < 18? printf("desculpe não tendes idade para usar este programa\n") : printf("em que posso ajuda-lo?\n");

    return 0;
}

Porque dessa forma ainda esta acontecendo a mesma coisa.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 17/02/2021 em 13:34, vangodp disse:

 #include <stdio.h>
int main(){
    char nome[100];
    int idade;
    printf("ola' qual e' o seu nome?\n");
    scanf("%s",nome);
    printf("ola' %s quantos anos tens?\n",nome);
    scanf("%d",&idade);
    idade < 18? printf("desculpe não tendes idade para usar este programa\n") : printf("em que posso ajuda-lo?\n");

    return 0;
}

 

Agora sim deu certo Obrigado!

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...