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

Ler Variáveis Tipo Char Do Teclado


HMaia

Pergunta

Sou um mero rookie português no C++, estou a começar agora e estou a deparar-me com um problema enorme a atribuir "valores" (caracteres) a variáveis tipo char.

Num programa onde só utilizo variável(eis) tipo char o programa recebe o valor definido pelol teclado para a variável e o programa é executado sem problemas.

Noutro programa onde recebo valores para variáveis int e char o programa termina antes de receber o valor para a variável tipo char.

Alguém me pode ajudar nesta questão/dúvida?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

#include<stdio.h>

int main()

{

int notateor,notaprat,mednota; //resp

//char resp;

do

{

printf("\n\nIntroduza a nota teo'rica deste aluno: ");

scanf("%d",&notateor);

printf("\n\nIntroduza a nota pra'tica deste aluno: ");

scanf("%d",&notaprat);

mednota=((notateor+notaprat)/2);

printf("\n\nA me'dia final do aluno e': %d",mednota);

if(mednota>=0&&mednota<=5)

{

printf("\n\nA me'dia deste aluno foi Medi'ocre!");

}

else

{

if(mednota>=6&&mednota<=9)

{

printf("\n\nA me'dia deste aluno foi Insuficiente!");

}

else

{

if(mednota>=10&&mednota<=13)

{

printf("\n\nA me'dia deste aluno foi Suficiente!");

}

else

{

if(mednota>=14&&mednota<=17)

{

printf("\n\nA me'dia deste aluno foi Bom!");

}

else

{ //(mednota>=18&&mednota<=20):

printf("\n\nA me'dia deste aluno foi Excelente!");

}

}}}

printf("\n\nDeseja calcular a me'dia de outro aluno? (sim/não)");

//printf("%c",resp);

//scanf("%c",&resp);

//resp=getchar();

printf("\n\n");

}

while(getchar()=='s');

}

Link para o comentário
Compartilhar em outros sites

  • 0

Utilize a opção code na hora de postar, para facilitar leitura, e também, procure identar o código. Aí vai o código:

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

int main()
{

int notateor, notaprat, mednota;
char resp;
do{

    printf("\n\nIntroduza a nota teorica deste aluno: ");
    scanf("%d", &notateor);
    printf("\n\nIntroduza a nota pratica deste aluno: ");
    scanf("%d", &notaprat);
    mednota=( (notateor + notaprat) /2 );
    printf("\n\nA me'dia final do aluno e': %d",mednota);
    if(mednota>=0&&mednota<=5){
        printf("\n\nA me'dia deste aluno foi Medi'ocre!");
    } else if ( mednota>=6&&mednota<=9 ) {
        printf("\n\nA me'dia deste aluno foi Insuficiente!");
    } else if ( mednota>=10&&mednota<=13 ) {
        printf("\n\nA me'dia deste aluno foi Suficiente!");
    } else if (mednota>=14&&mednota<=17) {
        printf("\n\nA me'dia deste aluno foi Bom!");
    } else { 
        //(mednota>=18&&mednota<=20):
        printf("\n\nA me'dia deste aluno foi Excelente!");
    }
    printf("\n\nDeseja calcular a me'dia de outro aluno? (sim/não)");
    printf("\n\n");
    resp = getch();
    } while(resp=='s');
system("PAUSE");
return 0;
}
Identado e funcionando. wink.gif Bem, eu apenas identei, e acrescentei espaços em alguns lugares, melhorando a legibilidade. No mais, eu apenas tirei o comentário da variável resp, tirei aquela coisa estranha que você fazia com ela:
//printf("%c",resp);
//scanf("%c",&resp);
//resp=getchar();
E substituí isso tudo por um simples resp = getch(); Essa confusão pode ter sido a causa do problema, não sei huh.gif não sou muito sabidão de C não.... Mudei a condição de encerramento do do/while com uma comparação de resp com a letra s(sim), e acrescentei a função system("PAUSE"); que pode ser obtida com o arquivo de cabeçalho stdlib.h Assim, o código funciona e com a pausa no final, você pode ver os resultados direitinho. Espero ter ajudado! wink.gif Outra dica: Em vez de utilizar um if, e na condição else dele, para comparar coisas que não batem com a primeira condição como em:
if ( x == 1 ) {
    printf( "Igual a 1" );
} else {
    if ( x == 2 ) {
        printf( "Igual a 2" );
    }
}
É muito melhor utilizar o else if. Exemplo:
if ( x == 1 ) {
    printf( "Igual a 1" );
} else if ( x == 2 ) {
    printf( "Igual a 2" );
}

Entendeu? Mais uma vez, espero ter ajudado.

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