Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
REISALVADOR

IF e ELSE

Recommended Posts

Meu código está com problemas. (RISOS)

O programa pede o nome da pessoa e depois a idade e resulta com a resposta se a pessoa é ou não maior de idade.

O problema é que pra qualquer idade digitada ele resulta que a pessoa é maior de idade.

Veja:

#include<stdio.h>
#include<string.h>
int main ()
{
int n, i;
float menor, maior;
char nome[30];


printf ("******* Este programa vai dizer se ******\n");
printf ("**** a pessoa er ou não maior de idade ***\n\n");

printf ("Qual o nome da pessoa? ");
fgets(nome,30,stdin);
printf ("Qual a idade de %s",nome);
scanf("%f",&i);

if(i<=17){
printf (nome);
printf ("er MENOR de idade!");
}

else if(i>=18){
printf (nome);
printf ("er MAIOR de idade!");
}

return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites


#include<stdio.h>
#include<string.h>
int main ()
{
int n, i;
float menor, maior;
char nome[30];


printf ("******* Este programa vai dizer se ******\n");
printf ("**** a pessoa er ou não maior de idade ***\n\n");

printf ("Qual o nome da pessoa? ");
fgets(nome,30,stdin);
printf ("Qual a idade de %s",nome);
scanf("%f",&i);[B]//errado[/B]
[B]scanf("%d",&i);[/B]

if(i<=17){
printf (nome);
printf ("er MENOR de idade!");
}

else if(i>=18){
printf (nome);
printf ("er MAIOR de idade!");
}

return 0;
}



só uma dúvida o que é "er"?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kid gumer, desculpe-me, agora que entendi que você editou a mensagem, claro, agora funcionou perfeitamente.

Gostaria de entender porque não pode ser usado %f e sim %d.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para habilitar acentuação é só usar a usar a seguinte linha dentro da função main

system("chcp 1252 > nul");

exemplo;
int main ()
{
system("chcp 1252 > nul");//seta as configurações do prompt para as usadas pelo windows

int n, i;
float menor, maior;
char nome[30];
. . .
. . .
. . .
}

Assim você pode usar acntuação

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acrescentei essa linha mas deu erro:

5 25 C:\Users\Reisalvador\Documents\Estudo 1.cpp [Error] 'system' was not declared in this scope

Código:

#include<stdio.h>
#include<string.h>
int main ()
{
system("chcp 1252 > nul");

int n, i;
float menor, maior;
char nome[30];


printf ("******* Este programa vai dizer se ******\n");
printf ("**** a pessoa er ou não maior de idade ***\n\n");

printf ("Qual o nome da pessoa? ");
fgets(nome,30,stdin);
printf ("\n\n");
printf ("Qual a idade de %s",nome);
printf ("\n\n>>>>>>>>>>>>>>>\t");
scanf("%d",&i);
printf ("\n\n");

if(i<=17){
printf ("Nao autorizado.\n");
printf ("MENOR idade!");
}

else if(i>=18){
printf ("Autorizado.\n");
printf ("MAIOR idade!");
}
printf ("\n\n\n\n\n\n\n\n");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

em vez de

else if(i>=18){
printf ("Autorizado.\n");
printf ("MAIOR idade!");
}

tente

else {
printf ("Autorizado.\n");
printf ("MAIOR idade!");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kid gumer, desculpe-me, agora que entendi que você editou a mensagem, claro, agora funcionou perfeitamente.

Gostaria de entender porque não pode ser usado %f e sim %d.

Pois o %f é usando para Float e você declarou que i é um Int.

Na hora de programar fique de olho nisso.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Kid Gumer, sua primeira resposta resolveu meu problema.

scanf("%f",&i);//errado

scanf("%d",&i);

Mendesjao, obrigado pela dica, perfeito!

Obrigado a todos!

Antônio Vaz,

Só não entendi a linha de comando que você sugeriu >>> system("chcp 1252 > nul") <<< pra habilitar o acento (~) no prompt.

Deu erro:

5 25 C:\Users\Reisalvador\Documents\Estudo 1.cpp [Error] 'system' was not declared in this scope

Código atual:

#include<stdio.h>
#include<string.h>

int main ()
{

int n, i;
float menor, maior;
char nome[30];


printf ("******* Este programa vai dizer se ******\n");
printf ("**** a pessoa er ou não maior de idade ***\n\n");

printf ("Qual o nome da pessoa? ");
fgets(nome,30,stdin);
printf ("\n\n");
printf ("Qual a idade de %s",nome);
printf ("\n\n>>>>>>>>>>>>>>>\t");
scanf("%d",&i);
printf ("\n\n");

if (i<=17){
printf ("Nao autorizado.\n");
printf ("MENOR idade!");
}

else if(i>=18){
printf ("Autorizado.\n");
printf ("MAIOR idade!");
}
printf ("\n\n\n\n\n\n\n\n");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Só não entendi a linha de comando que você sugeriu >>> system("chcp 1252 > nul") <<< pra habilitar o acento (~) no prompt.

inclua #include stdlib.h

acho que assim funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não deu:

Mas se copiar o resultado executado no prompt e color no notepad aparece normal os acentos.

Código atual:

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

int main ()
{

system("chcp 1252 > null");
int n, i; //%d
float menor, maior; //%f
char nome[30]; //%s

printf ("******* Este programa vai dizer se ******\n");
printf ("**** a pessoa er ou não maior de idade ***\n\n");

printf ("********************************\n");
printf ("** **\n");
printf ("** Qual é o nome da pessoa? **\n");
printf ("** **\n");
printf ("********************************\n");
printf ("\n\n\t");
fgets(nome,30,stdin);
printf ("\n\n");

printf ("Qual é a idade de %s",nome);
printf ("\n\n\t");
scanf("%d",&i);
printf ("\n\n");

if (i<=17){

printf ("******************************\n");
printf ("** **\n");
printf ("** Não autorizado. **\n");
printf ("** É MENOR de idade! **\n");
printf ("** **\n");
printf ("******************************\n");
}

else if(i>=18){
printf ("******************************\n");
printf ("** **\n");
printf ("** Autorizado. **\n");
printf ("** É MAIOR de idade! **\n");
printf ("** **\n");
printf ("******************************\n");
}

printf ("\n\n\n\n\n\n\n\n");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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
Entre para seguir isso  





Sobre o Clube do Hardware

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

×