Ir ao conteúdo

Ansi C

Membro Pleno
  • Posts

    3.284
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. @DefNão, ainda não era assim era mais como @KXSY fez. Outra coisa importante; Pareceu-me que fica um pouco perdido nas coisas, principalmente porque cada um contribui com coisa muito nova e você não questiona só aceita. Por exemplo, o colega @KXSY usou em sua estrutura campos de bits e você nem se ligou, porém já que saber como implementar uma linha de edição dinâmica no terminal.
  2. Todos resto continua igual, só as opções que ficam separadas. Loop fica dento da função main. No printf da função menu sobrou ); basta apagar e deixar o último.
  3. Nome é chamada recursiva, nesse tipo de processo uma função tem dentro de si uma chamada dela mesmo, assim como acontecia no seu código vi a função main que tinha uma chamada de si mesma só para exibir as opções do menu, mas vem com isso também consumo de memória sem necessidade. Eu recomendei que vocês implementassem uma função só para exibir o menu\opções. int opcao_usuario (void){ system("cls"); printf( "-----------------------------------------\n" "\tCONTROLE DE ESTACIONAMENTO\n" "-----------------------------------------\n" "\n1- Cadastrar Cliente\n" "\n2- Cadastrar Veiculo\n" "\n3- Listar veiculos cadastrados\n" "\n4- Creditos\n" "\n5- Sair\n" "\nOpcao: " ); int opcao = 0; scanf("%d",&opcao); return opcao; } Depois disse ainda que usem em um loop infinito, do tipo que @herbertbahia citou mais a função. while(1){ switch (opcao_usuario ()){ case 1: system("cls"); printf("Informe o nome do cliente: "); fflush(stdin); gets(aux); if (strlen(aux) > 11)printf("erro contem mais de 11 digitos\n"); else strcpy(info.nome,aux); printf("Informe a idade do cliente: "); scanf("%d", &info.idade); printf("Informe o CPF/CNPJ do cliente: "); fflush(stdin); gets(info.CPF_CNPJ); printf("Informe o número do CNH do cliente: "); gets(info.CNH); printf("Informe o endereco do cliente: "); gets(info.Endereco); system("pause"); // main(); CHAMADA RECURSIVA SEM FUNDAMENTO SÓ PRA REPETIR O MENU break; } } Todo resto continua igual porque a intenção é a repetição do menu.
  4. Todo vez que chama a função main para repetir as opções cria uma cópia de seu conteúdo na memória. Coloque o conteúdo do menu em uma função e chame-a com todo o resto por meio de um loop infinito.
  5. Chegou muito longe para ter erros é que existem aqui muita métodos, objetos funções e detalhes até um menu já tem; isso é fase final. É preciso testar as funções uma a uma eliminando o que está de acordo para identificar o que não está.
  6. É um dos meios mais úteis. Outra coisa importante, considere sempre que um local na memória quando reservado é de variável. Uma variável deve ter um identificador, ou seja, um nome e quase sempre isso é possível. Em matrizes o nome identifica a referência do primeiro elemento, os demais são só índices que podemos dizer que são variáveis a partir do primeiro, pois têm as mesmas características. Outra coisa, se um ponteiro tem o endereço numérico de memória reservada, ou simplesmente referência, ao ser desreferenciado ele se torna uma variável.
  7. Aqui só nos interessa o total, então não precisa apresentar o nome e o preço. Outra coisa importante é que existe uma iteração ou loop que continua enquanto os dois valores: código e quantidade são diferentes de 0.
  8. É possível resolver melhor e assim deixar como pede o exercício. Lá nos é dito que; Lei um número que é o código do produto e em seguida leia outro que é quantidade comprada. Exemplo: Por favor, entre com código do produto..: 16 Agora entre com a quantidade de produtos: 10 Note que nesse exemplo as entradas estão em sequencia.
  9. Usando a código anterior de base. Agora você lê dois valores, ou seja, a diferença na leitura é de 1 valor a mais que antes que é a quantidade comprada. Outra diferença também é que na hora de imprimir além do nome e preço do produto, você imprime também o valor da compra, ou seja, preço vezes a quantidade. Exemplo de entrada e saída 16 10 10x Cadernos a R$6 = R$60,00 99 10 Produto não encontrado
  10. Na linha 25
  11. faltou a palavra struct antes, fica assim: struct cad_cliente info
  12. @Matheus Freitas sim, não pode esquecer de imprimir a mensagem de acordo com a recomendação por último não há necessita dessas variáveis. Fica como @herbertbahia fez.
  13. Exercício Básico. A ideia de solução que usa blocos IF está certa, porém o sinal de comparação de igualdade na linguagem é (==) 2 iguais seguidos e também como resposta ao código o sistema deve imprimir a informação correspondente. Exemplo: 16 Cadernos R$6 99 Produto não encontrado Posteriormente quando estudar vetores e estruturas de repetição\iteração pode vir também a implementar uma versão mais dinâmica do mesmo sistema. Uma versão que permite muito mais códigos e descrições com apenas um bloco IF de decisão.
  14. Dá colher de chá, esse é uma solução para nosso problema com interrogações (??) que precisam ser substituídas para acerta o código. #include <stdio.h> int main (void){ unsigned int t = 0, alfab[26] = {0}; scanf (" %u", &t); // Primeiro leia t ... for (unsigned int i = 0; i < ??; ++i){ // Depois um loop de 0 ate t lê 2 inteiros m,n em que unsigned int m, n; scanf (" %u%u", &m, &n); char s[m]; // m é tamanho do vetor_s VLA for (unsigned int j = 0; j < ??; ++j){ // e conseguinte lê m caracteres pra o vetor_s ... char ch; scanf (" %c", &ch); s[j] = ch; ++alfab[(ch) - 'a']; // enquanto contabiliza no vetor_alfabético cada caracter lido } for (unsigned int k = 0; k < ??; ++k){ // Em outro loop aninhado ao primeiro de 0 até n unsigned int am; scanf (" %u", &am); // lê 1 inteiro de nome am for (unsigned int a = 0; a < ??; ++a){ // um loop aninhado a esse de 0 até am ... ++alfab[s[a] - 'a']; // contabiliza no vetor_alfabético todos os caracteres } } for (unsigned int p = 0; p < ??; ++p){ // Por último, e ainda dentro do primeiro loop t, um loop de 0 até 26 ... printf ("%u ", alfab[??]); // imprime alfab[??] = 0; // e reinicia o vetor_alfabético caso precise para teste seguinte. } } return 0; } Agora, será que vai ?
  15. Conseguiu começa a fazer?
  16. Tudo indica, dessa vez acertou.
  17. Lista é o algoritmo de estruturação de dados, existe nessa técnica métodos e funções que corresponde as propriedades da lista conforme seu tipo que são dois: estática e dinâmica. Por exemplo: O tamanho da lista, quando do tipo dinâmica, é indefinido porque ele cresce conforme a necessidade de novos itens; esse é bem o caso do nosso exercício. Quando diz lá que " A entrada de dados deve ser encerrada quando o usuário fornecer o valor 0 (zero) " diz que, a lista não tem um tamanho certo inicial e sim depende bem mais da quantidade de entrad antes do valor 0. Tudo fica mais claro quando pesquisar por: Lista Dinâmica.
  18. kkkkkk se bebe não dirija, e também não acesse o Clube do Hardware.
  19. esp <= retanguloA && resp <= retanguloL Igual não porque se são iguais não existe espaço entre eles que permite a passagem.
  20. Quando estabeleceu um limite (500) para ... " Crie um algoritmo/programa que leia vários valores e armazene-os em uma lista. A entrada de dados deve ser encerrada quando o usuário fornecer o valor 0 (zero). Em seguida o programa deve mostrar a lista em ordem inversa. " O enunciado do exercício menciona lista, e número de entradas é indefinido somente determinado pelo fim de valor igual à 0 então é a lista dinâmica.
  21. O nível é dos mais básico. Você vai encontrar aqui no fórum membros que depois de muito "blablabla" dá uma resposta no final... Só aguarde
  22. Fez como? Se entendeu a lógica de fato percebeu que o exercício se resolve com estruturas do tipo FOR aninhadas.
  23. @Duarte2020 Sem o enunciado (formal) não digo com certeza se podemos usar float ou qualquer outro tipo não char! Essas variáveis em sequência a1...a5 também me encomendam, um vetor é bem mais natural. Coloque o enunciado formal, bem como, quais assuntos assistiu antes de se aventurar nessa questão.
  24. Palpite é que está acontecendo uma ou + divisões por 0.
  25. Exato, e pergunte sempre que surgirem dificuldades.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!