Ir ao conteúdo

daniel.oliveira

Membro Pleno
  • Posts

    26
  • Cadastrado em

  • Última visita

Reputação

19
  1. (x + (2 * y) + (3 * z)) / 6
  2. Na verda é ao contrário ao alocar memória ele te retorna um endereço na memória pronta pra usar no programa, faria mais sentido: fastCar = &c;
  3. main(){ struct FastCar *fastCar; //inicia fastCar que aponta aleatoriamente ... if(x == 1){ Cadastro(&fastCar); //chama função Cadastro ... void Cadastro(struct FastCar **fastCar){ // ponteiro pra ponteiro? struct FastCar *c; //inicia c que aponta aleatoriamente c = (struct FastCar*)malloc(sizeof(struct FastCar)); //c aponta para memória inicializada c = &fastCar[0]; // c aponta para o que fastCar está apontando - aleatoriamente por que você declarou em main
  4. Eu dei uma breve olhada no seu código e vi que tem erros básico de operação com ponteiros e alocação de memória. Na função de cadastrar você aloca uma memória e endereça para o ponteiro c e na próxima linha você endereça a struct parametro para c (ou seja você perde a alocação que você fez), além de endereçar uma varável que nem foi iniciada em main. Eu sugiro estudar novamente sobre operações de ponteiros e struct.
  5. Isso mesmo, depois de programar vários programas você pega o jeito de como digitar literalmente os tipos de dados em C.
  6. Vamos a lógica Se a>b , então: a-b Se a<b, então: a+b Senão (se não maior, nem menor é igual), então a*a, ou a*b, tanto faz. você pode testar em C if (a>b){ //printa a-b } else if (a<b){ //printa a+b } else { //printa a*b } Para mostrar você não precisa gravar numa variavel só se você for utilizar depois printf("A diferença entre a e b, %d - %d = %d", a, b, a-b);
  7. A biblioteca padrão de entrada e saída de arquivo permite que você leia e escreva arquivos e, porém você tem que ter um pouco de conhecimento sobre ponteiros, e as funções de leitura e escrita, tais como FILE *arquivo, fopen(), fscanf(), fprintf()., etc... Bom você pode pesquisar leitura e e escrita de arquivos em C no Google, montar um código e se precisar de ajuda voltar a nos perguntar.
  8. O último Else está codificado errado, você pode colocar um Else If com a condição maior que 25 como você fez tirando os dois pontos depois da comparação. Agora você pode também só colocar Else, já que o IMC não é menor que 18,0, e não é menor que 25,0 só pode ser maior do 25,0. Só colocar Else e o código a ser executado.
  9. Eu não queria causar polêmica, mas programação é isso mesmo existe diversas formas de resolver um determinado problema, e todas alternativas estão certa. Mas sempre penso em reutilização de código e professores ensinam isso, por exemplo ao setar um valor como limite, você ao usar seu programa para números maiores terá que reescrever a linha de código para suportar tal limite, isso é simples em um programa de 100 linhas de código, agora imagine ter 50 mil linhas? Os criadores de C fizeram uma biblioteca padrão de limites até porque o limite de um int varia de computador para computador, de sistema para sistema. Então eu formulei minha resposta sendo que solucionando a questão assim eu não precisarei de mudar meu algoritmo futuramente, ele rodará até sei lá num computador pré histórico onde o valor máximo de um int seja maior que 99999.
  10. E se alguém digitar um numero maior? já que o programa não testa, o primeiro valor é o menor e contador começa com um. você digita um valor e logo ele é o maior, menor e média, matemática básica.
  11. É simples resolver esse questão, o primeiro número digitado é o menor número, faça antes do loop. Depois dentro do loop você terá duas situações ao ler um valor: O valor será igual a ao menor número, incremente contador++. Valor será menor ao menor número, ou seja temos um novo menor número, contador = 1. Implemente esse algoritmo e poste os resultados obtidos.
  12. Editores de texto em geral não ocupam muito espaço, o que ocupa é se for uma IDE já que o mesmo pode possuir compiladores, builders, ferramentas de depuração, ambiente de design de um, etc. Um ótimo editor que uso é o sublime.
  13. @isrnick Verdade foi um erro meu já que strings em C são ponteiros eu pensei que como eles são alocados dinamicamente faria alguma diferença na memória. Mas fgets() não dá nem a mínima pra isso e pede um vetor de caracteres fixo alocando memória desnecessária.
  14. @isrnick Eu acho sua solução muito boa e limpa, é o que eu faria, mas para facilitar o alto consumo de memória a busca só precisaria guardar o nome é CPF em primeira vez e se o CPF for igual aí sim guardar os demais dados do cadastro isso economizaria mais memória, no caso que eu apresentei o programa não gravaria nada e quando achasse o CPF voltaria uma linha e aí ele faria o que bem entender já que estaria no começo do cadastro economizando mais memória. A questão de como formatar os dados é decisão do programador bem como escolher que tipo de dados usar. Para iniciantes eu aconselho trabalhar com arquivo binários, mas isso é outra história.
  15. Então geralmente quando você executa um programa para prompt de comando ele fechará antes mesmo de mostra os resultados finais, o certo é abrir o programa a partir do prompt do windows, ou terminal no linux e aí ele se comporta normalmente. um exemplo de como abrir no terminal do windows

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!