Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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;
}

Editado por dif
tag CODE

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
 

"er" eu quis dizer "é" porque se colocar o acento imprime "Ç@"

Compartilhar este post


Link para o post
Compartilhar em outros sites
"er" eu quis dizer "é" porque se colocar o acento imprime "Ç@"

Beleza... o código funcionou agora?

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.

Editado por REISALVADOR
Erro de resposta

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

Editado por dif
Por favor use a tag CODE para postar os códigos

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;
}

Editado por dif
Por favor use a tag CODE para postar os códigos

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;
}

Editado por dif
Por favor use a tag CODE para postar os códigos

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;
}

Editado por dif
Usar a tag CODE para postar códigos.

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

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

×