Ir ao conteúdo

Posts recomendados

Postado

Estou começando a programar em C agora e ainda não tenho muito experiência com programação. Fiz esse código abaixo para tentar entender melhor as condições, porém eu queria que sempre que o usuário não responder com o 's' ou 'n' retornasse a perguntar inicial forçando ele a responder corretamente. Tentei usar o for e o while porém ficava repetindo muitas vezes não apenas uma para responder novamente. 

 

{

   char resp = get_char("voce aceita?\n");

   

   if (resp == 's' || resp == 'S')

   {

   printf("voce aceitou\n.");

   }

   else if (resp == 'n' || resp == 'N')

   {

   printf("voce recusou\n.");

   }

}   

 

Postado

@Matheus ZZ  Você pode colocar essas condições em um loop infinito para sair apenas quando for s ou n,

 

while(1){
    printf("Você aceita? ");
    scanf("%c%*c",&c);
    
    if(c =='s'||c=='S'){
        printf("Você aceitou");
        break;
    }else if(c=='n'||c=='N'){
        printf("Você recusou");
        break;
    }
}

 

  • Curtir 1
Postado

Pode usar um do-while também:

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

int main(void) {
  char c = ' ';

  do {
    printf("voce aceita? [ S / N ]: ");
    scanf(" %c%*c", &c);
    c = toupper(c);
  } while(c != 'N' && c != 'S');

  if (c == 'S') {
    printf("Aceito \n");
  } else {
    printf("Recusado \n");
  }

  return 0;
}

 

Postado
21 minutos atrás, AdrianoSiqueira disse:

do
{ 
  printf("voce aceita? [ S / N ]: ");
  scanf(" %c%*c", &c); 
  c = toupper(c);
} while(c != 'N' && c != 'S');

 

 

🤔Deixe a chamada a printf() fora do loop...

Postado

É um procedimento? Avalie o retorno do procedimento repassando o valor para expressão.

 

procedimento

int voce_aceita (void){
    char resp = get_char ("voce aceita? ");
    if ((resp == 's') || (resp == 'S')){
        printf("%s", "Aceitou. \n");
        return 0;
    }else
    if ((resp == 'n') || (resp == 'N')){
        printf("%s", "Recusou. \n");
        return 0;
   }
   return 1;
}

 

loop do procedimento

int continuar = voce_aceita ();
while (continuar) continuar = voce_aceita ();

 

Boa Sorte.

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

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

×
×
  • Criar novo...