Jump to content
Fórum Script Brasil
  • 0

Por que o Programa fecha após input


Question

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 to post
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      149288
    • Total Posts
      645685
×
×
  • Create New...