Ir ao conteúdo
  • Cadastre-se
Adam Bastos

Dúvida em estruturas de repetição.

Recommended Posts

Preciso de ajuda nesse exercício, prq já criei a maior parte do programa, mais impaquei na parte da estrutura de repetição.

 

O código é o seguinte:

 

#include<stdio.h>
main()
{
      char operador[30];
      int opções;
      char nome[30];
      char consul[30];
      float valor;
      char pag[30];
      
      printf("#############################  Clinica iMasters  ###############################");
      printf("\nNome do operador:");
      gets(operador);
      system("cls");
      
      
      printf("#############################  Clinica iMasters  ###############################");
      printf("\nPor favor senhor %s, digite o valor da opcao pretendida \n",operador);
      printf("\n1.Cadastrar  \n2.Cancelar  \n3.Sair \n");
      scanf("%d",&opções);
      system("cls");
      
      
      
      
      printf("#############################  Clinica iMasters  ###############################");
      switch(opções)
      {
      
      
      case 1:printf("\nNome do paciente:");
      fflush(stdin);
      gets(nome);
      printf("\nO nome do pasciente digitado foi %s\n", nome);
      
      printf("\nTipo de consulta:");
      fflush(stdin);
      gets(consul);
      printf("\nA consulta e do tipo %s\n",consul);
      
      printf("\nValor da consulta:");
      fflush(stdin);
      scanf("%f",&valor);
      printf("\nO valor da consulta e R$%.2f\n",valor);
      
      printf("\nForma de pagamento:\n");
      fflush(stdin);
      gets(pag);
      printf("\nA consulta sera paga com %s\n",pag);
      
      
      
      
      
      
      break;      
                            
      
      }
      getch();
      return(0);
      }
 
 
 
Mais ai tem um parte que pede assim:
 
A inserção do cadastro dos pacientes encerra quando forem coletados 250 pacientes ou quando for inserido a letra p.
 
Nessa parte que tenho dúvidas.
 
Tem que repetir esse cadastro 250 vezes. e o programa se encerra quando isso acontecer ou quando for inserido a letra p..
 
Peço ajuda de vocês..!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer esse tratamento, é muito simples.

Segue um exemplo para leitura e listagem de nomes:

    for ( qtdCadastrada = 0; qtdCadastrada < 250; qtdCadastrada++)    {        printf("Informe o nome do paciente  %d: ", qtdCadastrada + 1 );        scanf(" %[^\n]s", nome[qtdCadastrada] );        if ( strcmp(nome[qtdCadastrada], "p") == 0 )        {            nome[qtdCadastrada][0] = '\0'; // Anula o valor inserido na última posição do vetor            break;        }    }    for (i = 0; i < qtdCadastrada; i++)        printf ("Nome do paciente na posição %d: %s\n", i + 1, nome[i]);
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por questões didáticas!

ou para mais leve no código; Ao invés de importa a biblioteca strings.h

você substitui:

if ( strcmp(nome[qtdCadastrada], "p") == 0 )

por

if ( nome[qtdCadastrada][ 0] == 'p'  &&   nome[qtdCadastrada][ 1] == '\0')

que dar no mesmo sem reutilização de código ou sub IF.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado amigo @, pela apresentação de uma explicação mais customizada.

 

Tentei explicar utilizando a biblioteca string.h, por se tratar de uma biblioteca padrão na linguagem e também por deixar o código mais simples em ser lido.

Mas você tem toda a razão. Utilizando dessa maneira, o código terá um simples e eficiente, para esse caso.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda, mas achei um pouco complexa a explicação; Pois ainda não tenho muito o costume de usar a biblioteca string, e por outros fatores mais, pois sou o mais iniciante que vocês pensarem.. :D

 

Mesmo assim MUITO OBRIGADO!

 

Se tiverem uma maneira mais simples, e mais detalhada que essa para explicar, ficarei grato novamente. :)  

 

Gostaria de saber em que parte do meu código eu poderia acrescentar essa explicação de vocês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ScreenBlack

Todos nós estamos aqui, para compartilhar e aprender;

As vezes estamos em uma fase e o colega está em outra,

por isso que eu disse: 

Por questões didáticas!

Além disto;

A minha opinião é; Reutilização de Código, é para quem já trabalha profissionalmente e precisa de produtividade.

Não existe uma função padrão em C, que um estudante não possa fazer igual

, existe até a possibilidade de fazer melhor do que as que existe.

 

Introduzir conhecimentos novos em um post nos obriga à dar explicações, e eu sou péssimo em explicações. 

 

​Não sei explicar pois estou na fase de aprendiz e aprendo apenas por curiosidade.

Então fico no básicão mermo.

Valeu pessoal.

  • Curtir 1

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





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

×