Ir ao conteúdo

Ansi C

Membro Pleno
  • Posts

    3.284
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. Organize em sub-rotinas/funções; use a main para trocar informações entre elas. Ler 8 elementos em uma matriz A tipo vetor. Criar uma matriz B de mesma dimensão com os elementos da matriz multiplicados por 5. Exibir a matriz B na ordem crescente. Criar uma rotina para pesquisar os elementos armazenados na matriz B. A sub-rotina abaixo retorna 1 quando lê 8 números inteiros. int numeros_ler (int vetor [8]) { int index= 8; while ((-1) <-- index) if (scanf ("%d", &(vetor [index])) != 1) return 0; return 1; }
  2. O fragmento de código abaixo, quando uma nova máxima é descoberta as, possíveis, repetições da máxima anterior perdem o sentido, por essa razão que a variável 'repet' deve ser zerada. if (maior < elementos [index]) maior= elementos [index], repetiu= 0; else if (maior == elementos [index]) ++ repetiu; Falta esse tratamento no seu algoritmo.
  3. Já fiz, usando struct ou vetores que tanto faz, tem dúvidas no quê?
  4. Tem sempre um e outro membro desocupado o bastante para fazer da postagem uma aula personalizada em torno de um exercício, não é novidade. Mesmo assim, sugiro como colega que tente por si até ter dúvida de verdade. Comece com aquele quesito que acha pior.
  5. Os comandos estão corretos, contudo, preste atenção que a entrada tem suas políticas: Por favor, digite até 100 números inteiros (ℕ*) ou para confirmar digite 0. Adéque sua solução de modo que o usuário delimita o tamanho com 0. Isso, mas o como define é bem mais importa e prevalece o ditado no enunciado.
  6. Joguei para lodo o que considero errado /* Verifica se a lista está vazia */ int lista_vazia (lista_ *lista) {//boolean lista_vazia(LISTA *lista){ if (lista->inicio == NULL) //if(*lista->item == NULL){ return 1; //return TRUE; else return 0; //return FALSE; }
  7. Faz exatamente o que é programado para fazer; a partir da primeira metade do vetor a programação copia a primeira sobre a segunda. Para efetivar a inversão total do vetor é obrigatório só a metade dos ciclos, T/2.
  8. Essa operação tem um nome genérico com 3 letras a ‘top’ ; “top” nos dar acesso ao item no topo da pilha, sem desempilhar. Logicamente, se não há itens empilhados, o topo é nulo. " Em outras palavras, TopoPìlha está equivocada: ela não faz o que deveria e também erra no que está fazendo que por sorte não significa nada porque nem foi utilizada na implementação. Se continuar assim pode apagar TopoPilha. "
  9. Comentarei porque vai que alguém tenha a mesma opinião então já encontra outro aqui. Uma coisa é manter o zero no final, outra coisa é a troca de posição que acontece entre o polo significativo. Por último, esse enunciado que não se relaciona com a entrada e saída em sua totalidade. " Na minha opinião faça na forma do enunciado: O algarismo menos significativo é também o menos preciso, ou, o último. Lei os números, coloque-os um em cada vetor invertidamente persistindo os 0s finais. Lembre-se que terá uma tarefa para duas vezes (dois números) então é melhor que as ações fossem programadas para função/método. [<]ENTRADA .: 1234 6700 [>]SAIDA ...: 4321 7600 [<]ENTRADA .: 1234 6070 [>]SAIDA ...: 4321 7600 "
  10. Está desempilhando não somente quando ver (>) sem a distinção. O fato, se o sinal de desempilhar aparece e desempilha com sucesso então tem +1 diamante, mas nesse caso se empilha e desempilha respectivamente para < e >. " Por último, o vetor para a sequência de caracteres tem capacidade de 1001, com já exemplificado, porque o caractere nulo não faz parte o tamanho da ‘string’. "
  11. @Davi Dutra @RaphiaelGamer @sannoy Só empurrei para lodo com // o que achei de errado sintaticamente seu programa. Compare #include <stdio.h> /************************************************************************[MAIN] * Funcao principal, tambem conhecida por intermediadora, e recomendado para es_ * sa funcao ter o menor numero possivel de instrucoes no interior do seu corpo * e por meio dela que as demais funcoes fazem troca de dados em 'chamadas', pa_ * rametros e retornos * * Parametro Formal * void Vazio * * Retorno 'status' Valor formal de retorno ao sistema operacional. */ int main (void) { int ValorSaldo, ValorSaque; ValorSaldo = 1000; printf ("Digite o valor a ser sacado\n"); scanf ("%d", &ValorSaque); //scanf ("%d", &ValorSaldo); if (ValorSaque <= ValorSaldo) { //if (ValorSaldo <= ValorSaque) { ValorSaldo = ValorSaldo - ValorSaque; printf ("Sacando R$ %d", ValorSaque); //printf ("Sacando R$", &ValorSaque); //scanf ("%d", ValorSaldo); } else { printf ("O valor do saque e maior do que o disponivel\n"); } }
  12. Ansi C

    C Fazer string em c

    Entre FOR e WHILE sou do grupo dos WHILE Falando da (programação) acima, Se é dito que pega 1 caractere (fgets(buffer, 2, fluxo)) então o conteúdo para "buffer" é "?\0", logo o FOR será ou não otimizado para o IF que é seu conteúdo. "
  13. Certamente caro colega de código, a linguagem que permite múltiplas maneiras de se fazer uma só coisa. Na correção e resolução os professores/alunos se protegem com restrições de conteúdo, caso contrário, não importa a forma só o resultado. Outras formas envolvem; aritmética, aritmética de ponteiros, operadores bitwise , struct (você usa) e devem ter mais. " Com Aritmética se diz que: a, b, c, d São 4 questões de 4 escolhas (1, 2, 3, 4). Se eu [3] respondi: 3144. Vem #define MATRICULA (0) #define RESPOSTA (1) #define NOTA (2) int alunos [4][3]; scanf ("%d", &alunos[3][RESPOSTA]); /* Gravou 1243 */ // Imagine que o gabarito é: 1234 alunos [3][NOTA]= /* Valor exp. bool é 0, 1 */ + ((alunos[3][RESPOSTA] % 10) == (1234 % 10)) + ((alunos[3][RESPOSTA] % 100 / 10) == (1234 % 100 / 10)) + ((alunos[3][RESPOSTA] % 1000 / 100) == (1234 % 1000 / 100)) + ((alunos[3][RESPOSTA] / 1000) == (1234 / 1000)); printf ("NOTA: %d\n", alunos [3][NOTA]); /* NOTA: 1 */ "
  14. Ansi C

    C Fazer string em c

    Existem muitas *formas de se fazer isso: menos ou mais analática em cada solução Fases 1- Ler uma ‘string’ de no máximo 50 caracteres. 2- E em seguida um caractere (entre A e z - consista se o caractere esta nesse intervalo), 3- Mostrar quais as posições esse caractere (maiúscula ou minúscula) na string lida 4- E quantas vezes ele apareceu " * Problema na linguagem de programação C é que existem muitas maneiras de se fazer a mesma coisa e todas elas são formas corretas, por exemplo, existem muitas maneiras e se lê uma “string”: gets, fgets, scanf, getline, getdelim, read. C11 - lendo com gets char *prompt= NULL; puts ("\nPor favor, entre com string"), prompt= gets ((char [BUFSIZ]){"..."}), prompt [50]= '\0', puts ("\nResultado"), puts (prompt); Observação: gets há anos é marcada como desatualizada, porém funciona, e funcionará penso que por +12 anos. Quando diz: Ler uma ‘string’ de no máximo 50 caracteres — Deseja-se um vetor de capacidade de +50 caracteres (char), mas com tamanho max. 50, algo que 'gets' não garante. Não importa para ela, tudo que tiver na linha será lido, inclusive uma “string” com mais de 50 caracteres. "
  15. A primeira programação, a errada, interrompe a cópia quando encontra o excluído. A segundo programação, a certa copiando todos exceto o excluído. "
  16. Entendi que os contatos são assim alinhados no arquivo.txt A B C Mas deseja é algo assim A B C Coloque o caractere quebra de linha na struct struct Cadastro { int num; char nome[100]; char endereco[100]; char bairro[100]; char cidade[30]; char estado[30]; char cep[10]; char tel[20]; char cel[20]; char LF; // <---- Quebra de linha }; Na função de cadastramento void cad() { /* ... */ gets(C.cel); C.LF= getchar(); /* <--- Quebra de linha */ fwrite(&C, sizeof(C), 1, arquivo); fclose(arquivo); } adicionado 34 minutos depois Sim, lógico são "restos" da string anterior que por ser maior que a atual sobrou com pedaços no final, evite com 'higienização' da struct (C). /* ... */ C= (struct Cadastro){0}; Zerar C antes de usar C.
  17. Em geral, os primeiros passos que nós alunos/professores entregamos de estruturas de dados é esse exemplo, mais que elementar; lista é variável de estrutura ou somente o ponteiro para primeiro nó. " — Quando se trada do modelo tradicional, Certamente se diz que ... ... A Cabeça da lista (head cell) é um célula (NO) de conteúdo ignorado que se usa em uma lista encadeada como um marcador de início. C'11 NO *lista_de_afazeres_domesticos= NULL; lista_de_afazeres_domesticos= malloc (sizeof (NO)); /* ... */ if (lista_de_afazeres_domesticos != NULL) { lista_de_afazeres_domesticos->prox= NULL; } "
  18. Nesse caso é: num.Count
  19. Sim, Informe sua capacidade, antes, e também, no arquivo porque depois vai lê e a capacidade será a primeira informação. "
  20. PS.: Talvez op não seja necessária.
  21. Boa Tarde @Oceans of mind , então meu caro colega de código; notei que funções com ações semelhantes à 'cadastrarPacote' seguem a seguinte regra: Ilustração tipo *lista= NULL; tamanho quantidade= 0; pegar_lista (&lista, &quantidade); [*] lista é um ponteiro de um tipo de dados, então o valor dessa variável é o endereço para variável do seu tipo. Um exemplo desse algoritmo é a função getline em stdio.h C'11 char *string_nome= NULL; size_t tamanho_nome= 0; (void) getline (&string_nome, &tamanho_nome, stdin); A função aloca e realoca memória. Sempre alocando de 128 em 128 'pacotes', mesmo se na linha tem 1 'pacote'. Quando 128 é insuficiente, caso tenha +127 e -256 caracteres, a função aloca 256, etc. " Voltando a sua função e qual um dos seus erros? Então, erra no primeiro argumento que não se pode alterar o valor na origem em caso de realocarem os dados. "
  22. PS.: Se for Windows UTF-8 ou mexer no prompt não ajuda, Quando Windows, precisa de uma abordagem ampla (UTF-16) daí surge o que alguns considera incomodo, e evita, usar as funções de entrada e saída para caracteres unicode (exemplo wprintf ...), por último, contenta-se sem os acentos, símbolos espécias e retorna a estaca 0. "
  23. Bom dia, então essa discussão é velha e muito pode ser dito, o que certa qualquer faz e com aquele velho tutorial de sempre, mas, o que importa no final é a Codificação (CODEPAGE) do PROMPT. Troque a codificação do terminal/prompt para UTF-8. Desculpa-me se acha que fui muito direto. "
  24. É simples operação de aritmética com tipos Python. E.i.: py = 'PYTHOn' print (py [0:(-1)] + 'N') py = py + ' e PYTHON?' print (py)
  25. Boa noite, observei o seu problema de longe e questionava; se é eletiva de E.S. ou de E. Médio, de qual maneira use o mesmo critério para resposta, não sou nenhum especialista em C ou em interpretação de exames. Ainda assim, o requerido pelo exercício é simplesmente que de nomes (implemente funções) para as operações comuns: adição, subtração e resultado. Exemplifico para que faça sentido o que estou expondo ti, segue abaixo: /************************************************************[INSERIR_DINHEIRO] * O banco insere dinheiro no caixa, soma o saldo atual no caixa eletrônico. * * caixa = soma (banco, caixa); * * Parametro Formal * int caixa - 'saldo atual' quantias no local do caixa eletrônico * int banco - quantias para adicionar ao caixa eletrônico * * Retorno 'saldo atual' o caixa eletrônico de quantias atualizada. */ int inserir_dinheiro (int banco, int caixa) { caixa_ += banco; /* soma (banco em 'caixa'); */ return caixa; /* caixa de quantias atualizado */ } Essa implementação equivale ao sua depositar. Logo: int sacar_dinheiro (int cliente, int caixa); É o nome da implementação reversa de ( + ) inserir_dinheiro, A ( - ) sacar_dinheiro. Subtrai a 'caixa', antes testa se o saldo é suficiente, e retorna 'caixa' atualizado. int mostrar_saldo (int caixa); É o nome da implementação que escreve na tela a mensagem com saldo da 'caixa' e retorna. " A porção mais chatinha de código é a que envolve mensagens e leituras. Não enxergo, além disso, no enunciado típico de exame EREM-PE no qual estou acostumado. Desculpa se estou errado ou não fazer sentido. "

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!