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

(Resolvido) Problema com do{..}while();‏


xSocietySlavesKilleRx

Pergunta

Boa noite galera!

Segue um problema q estou tendo com o do{ } while();

int main () {
                    do   {
                          
   
                        /*
                            Estrutura e etc..
                       */
   
   
                            printf("\n\n\t Deseja realizar outro calculo? (S/N) ");
                            scanf("%c",&opc2);
                     }
                       while(opc2=='s'||opc2=='S');
                       scanf("%%");
               }

Todas as variáveis estão Ok.

Aonde poderia estar o problema com o código? O scanf("%%"); no final?

Algum erro de Sintaxe?

O programa compila sem problemas no Devc++!

Abraço.

Editado por xSocietySlavesKilleRx
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Peço que evite a postagem de up's conforme a regra 3.8 (ver regras).

3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.
Quando precisar acrescentar informações pouco depois de fazer um post, o melhor é editá-lo.

Não sabia dessa do scanf("%%"). Poderia postar o código completo da função main?

Link para o comentário
Compartilhar em outros sites

  • 0

Foi mal aí Jonathan Queiroz, não foi com essa intenção.

então.. o código main:

int main () {
       do{
       printf("\n\tCalculo de Descontos e adicionais \n\n Insira o preço do produto: ");
       scanf("%f",&preço);
       printf("\nEscolha a operacao \n 1 - A vista;\n 2 - Parcelamento 5x SEM Juros;\n 3 - Parcelamento 10x COM Juros;\n \n");
       scanf("%i",&opc);
       system("cls");
       switch(opc) {
          case 1 : a_vista(preço);
          break;
          case 2 : prazoSadd(preço);
          break;
          case 3 : prazoCadd(preço);
          break;
   }
       printf("\n\n\t Deseja realizar outro calculo? (S/N) ");
       scanf("%c",&opc2);
       }
       while(opc2=='s'||opc2=='S');
       scanf("%%");
   }

O int main usa variáveis globais e antes do int main() { estão implementadas algumas funções com a passagem de parâmetros (preço)

Tudo funciona 100%, só não repete.

Editado por xSocietySlavesKilleRx
Link para o comentário
Compartilhar em outros sites

  • 0

Jonathan, o link que você me enviou foi extremamente útil, consegui resolver o problema :lol: - não com o artigo, mas com um comando postado nos comentários do artigo; O comando fflush(stdin); pra limpar as sobras do buffer do teclado, colocado antes do scanf();.

Ficou assim:

int main () {
                    do   {
                          
    
                        /*
                            Estrutura  e etc..
                       */
   
   
                            printf("\n\n\t  Deseja realizar outro calculo? (S/N) ");
                            fflush(stdin);   //Antes de ler a opção
                            scanf("%c",&opc2);
                      }
                       while(opc2=='s'||opc2=='S');
                        scanf("%%");
               }

Vale ressaltar que não é portável, funciona apenas em windows.

Abraço :D

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...