Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversa - Desafio de Programação Resolvido em CQuantidade de visualizações: 1212 vezes |
Algorítmo Resolvido de C - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversa Pergunta/Tarefa: Escreva um programa C que leia um número de 3 dígitos e o inverta, escrevendo o número lido e o invertido. Por exemplo, se o usuário informar o valor 753, seu programa deverá invertê-lo, resultando em 357. Seu programa deverá exibir a seguinte saída: Observação: Seu código deverá usar apenas os operadores matemáticos disponíveis, por padrão, na linguagem C. Informe um valor inteiro de três dígitos: 753 O valor original é: 753 O valor invertido é: 357 Veja a resolução comentada deste exercício usando C console (modo texto): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(int argc, char *argv[]) { int numero, temp, inverso; setlocale(LC_ALL,""); // para acentos do português // vamos solicitar ao usuário que informe um valor inteiro // na faixa 100 a 999 (incluindo) printf("Informe um valor inteiro de três dígitos: "); // vamos ler o valor informado scanf("%d", &numero); // vamos verificar se o valor está na faixa permitida if(numero < 100 || numero > 999){ printf("Valor fora da faixa permitida"); } else{ // vamos criar uma variável temporária para // manter intacto o valor lido temp = numero; inverso = 0; // guardará o valor invertido // vamos inverter o valor agora while(temp != 0){ inverso = (inverso * 10) + (temp % 10); temp = temp / 10; } // vamos mostrar o resultado printf("O valor original é: %d\n", numero); printf("O valor invertido é: %d", inverso); } printf("\n\n"); system("pause"); return 0; } |
Link para compartilhar na Internet ou com seus amigos: |
C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno de um número ou ângulo em C usando a função sin()Quantidade de visualizações: 11410 vezes |
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem: Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula: \[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \] Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem C. Esta função, disponível no header math.h, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]){ printf("Seno de 0 = %f", sin(0)); printf("\nSeno de 1 = %f", sin(1)); printf("\nSeno de 2 = %f", sin(2)); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Seno de 0 = 0.000000 Seno de 1 = 0.841471 Seno de 2 = 0.909297 Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo: |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como alocar memória dinâmica em C usando a função malloc()Quantidade de visualizações: 28916 vezes |
A função malloc() é usada em C para alocarmos um bloco de memória. Esta função recebe a quantidade de bytes a serem alocados e retorna um ponteiro do tipo void (genérico) para o início do bloco de memória obtido. Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- void *malloc(size_t size); Se a memória não puder se alocada, um ponteiro nulo (NULL) será retornado. É importante se lembrar de alguns conceitos antes de usar esta função. Suponhamos que você queira alocar memória para um inteiro. Você poderia ter algo assim: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // aloca memória para um int ponteiro = malloc(4); Embora este código esteja correto, não é um boa idéia assumir que um inteiro terá sempre 4 bytes. Desta forma, é melhor usar o operador sizeof() para obter a quantidade de bytes em um inteiro em uma determinada arquitetura. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // aloca memória para um int ponteiro = malloc(sizeof(int)); Eis o código completo para um aplicativo C que mostra como alocar memória para um inteiro e depois atribuir e obter o valor armazenado no bloco de memória alocado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // ponteiro para uma variável do tipo inteiro int *ponteiro; // aloca memória para um int ponteiro = malloc(sizeof(int)); // testa se a memória foi alocada com sucesso if(ponteiro) printf("Memoria alocada com sucesso.\n"); else printf("Nao foi possivel alocar a memoria.\n"); // atribui valor à memória alocada *ponteiro = 45; // obtém o valor atribuído printf("Valor: %d\n\n", *ponteiro); // libera a memória free(ponteiro); system("PAUSE"); return 0; } Uma aplicação interessante da função malloc() é quando precisamos construir uma matriz dinâmica. Veja como isso é feito no código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; // quantidade de elementos na matriz int quant = 10; // ponteiro para o bloco de memória int *ponteiro; // aloca memória para uma matriz de inteiros ponteiro = malloc(quant * sizeof(int)); // testa se a memória foi alocada com sucesso if(ponteiro) printf("Memoria alocada com sucesso.\n"); else{ printf("Nao foi possivel alocar a memoria.\n"); exit(1); } // atribui valores aos elementos do array for(i = 0; i < quant; i++){ ponteiro[i] = i * 2; } // exibe os valores for(i = 0; i < quant; i++){ printf("%d ", ponteiro[i]); } // libera a memória free(ponteiro); printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como excluir arquivos em C usando a função remove()Quantidade de visualizações: 19140 vezes |
A função remove(), disponível no header stdio.h, pode ser usada para excluir arquivos. Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- int remove(const char *filename); Veja que esta função recebe o caminho e nome do arquivo a ser excluído e retorna um valor inteiro. Se o arquivo for excluído com sucesso, o valor 0 será retornado. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // nome do arquivo a ser excluído char *arquivo = "c:\\testes.txt"; // vamos excluir if(remove(arquivo) == 0) printf("Arquivo foi excluido com sucesso."); else printf("Nao foi possivel excluir o arquivo."); printf("\n\n"); system("PAUSE"); return 0; } |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares de canto A disposição dos pilares e a determinação das medidas de sua transversal estão entre as primeiras etapas em um dimensionamento de pilares de canto. Segundo a NBR 6118, um pilar não pode ter dimensões menores do que 19cm. Quando isso ocorre, deve ser adotado um coeficiente adicional (yn) para a majoração dos esforços solicitantes como medida de segurança, a ser determinado de acordo com a menor dimensão do pilar. Analise os pilares a seguir: Qual o valor do coeficiente adicional (yn) que deve ser adotado para os referidos pilares, respectivamente? A) yn1 = 1,05. yn2 = 1,25. yn3 = 1,50. yn4 = 1,35. B) yn1 = 1,05. yn2 = 1,00. yn3 = 1,00. yn4 = 1,25. C) yn1 = 1,05. yn2 = 1,00. yn3 = 1,15. yn4 = 1,75. D) yn1 = 2,50. yn2 = 1,85. yn3 = 1,25. yn4 = 1,75. E) yn1 = 2,50. yn2 = 1,00. yn3 = 1,65. yn4 = 2,25. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
A transpiração é um processo fundamental na contribuição para o acúmulo de água em estado gasoso na atmosfera. Qual agente é um dos principais atores nesse processo? A) Rochas. B) Solos férteis. C) Chuvas. D) Seres vivos. E) Minerais. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Formas: Confecção e colocação O concreto deve estar curado e liberado para a remoção das formas segundo recomendações técnicas. Quando não se utiliza concreto especial ou aditivo acelerador de pega, para vigas de pequeno vão, qual é o prazo mínimo para a retirada das formas inferiores, com a manutenção das principais escoras? A) Cinco dias. B) Sete dias. C) Dez dias. D) Quatorze dias. E) Vinte e um dias. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual das formas abaixo é válida para a declaração e inicialização de variáveis em JavaScript? A) int a = 5; B) declare a = 5; C) var a = 5; D) def a = 5; E) variable a = 5; Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares de extremidade Pilares são elementos verticais cujo principal esforço normal solicitante é o de compressão. Eles podem ser classificados de acordo com sua posição na estrutura. Sobre os pilares de extremidade, assinale a alternativa correta. A) Os pilares de extremidade se situam no canto da edificação e têm descontinuidade nas duas direções. B) Nos pilares de extremidade, atuam forças normais e momentos que geram o esforço de flexão normal composta. C) Todos os pilares de extremidade são classificados como esbeltos, pois seu índice de esbeltez é acima de 200. D) Para esses pilares, não se recomenda usar o momento mínimo para determinar as solicitações atuantes. E) Esses pilares são submetidos à compressão pura, pois não têm excentricidades iniciais. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |