Ir ao conteúdo
  • Cadastre-se

Dúvida em estruturas de repetição.


Adam Bastos

Posts recomendados

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..!
Link para o comentário
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
Link para o comentário
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
Link para o comentário
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
Link para o comentário
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.

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...