Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Escreva um programa em C que declara um vetor de 5 elementos do tipo int. Em seguida peça para o usuário informar os valores dos elementos - Lista de Exercícios Resolvidos de CQuantidade de visualizações: 1288 vezes |
Pergunta/Tarefa: Escreva um programa em C que declara um vetor de 5 elementos do tipo int. Em seguida peça para o usuário informar os valores dos elementos. Finalmente percorra o vetor e mostre o valor de cada elemento na tela. Sua saída deverá ser parecida com: Informe o 1.o número: 4 Informe o 2.o número: 7 Informe o 3.o número: 21 Informe o 4.o número: 9 Informe o 5.o número: 8 Os números lidos foram: 4 7 21 9 8 Veja a resolução comentada deste exercício usando C console: ---------------------------------------------------------------------- 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 i; // para controlar as repetições dos laços int numeros[5]; // para guardar os números lidos setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar cinco números inteiros for(i = 0; i < 5; i++){ printf("Informe o %d.o número: ", (i + 1)); scanf("%d", &numeros[i]); } // vamos mostrar os números lidos printf("\nOs números lidos foram:\n"); for(i = 0; i < 5; i++){ printf("%d ", numeros[i]); } printf("\n\n"); system("pause"); return 0; } |
![]() |
C ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Ordenação e pesquisa em C - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 2626 vezes |
A ordenação Insertion Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando as cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim em diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem C agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}: ---------------------------------------------------------------------- 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> // função que permite ordenar um vetor de inteiros // usando a ordenação Insertion Sort void insertionSort(int vetor[], int tam){ int i, temp, j; // este laço varre os elementos a partir do segundo // elemento, ou seja, o índice 1 for(i = 1; i < tam; i++){ // guardamos o elemento atual em temp temp = vetor[i]; for(j = i; ((j > 0) && (vetor[j - 1] > temp)); j--){ vetor[j] = vetor[j - 1]; // houve uma troca } vetor[j] = temp; // colocamos temp em seu devido lugar } } int main(int argc, char *argv[]){ int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11}; int i, tamanho = 9; // imprime a matriz sem a ordenação puts("Sem ordenação:\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } // vamos ordenar a matriz insertionSort(valores, tamanho); // imprime a matriz ordenada puts("\n\nOrdenada usando Insertion Sort:\n"); for(i = 0; i < 9; i++){ printf("%d ", valores[i]); } printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de C - Um método recursivo que conta de 10 até 0Quantidade de visualizações: 811 vezes |
Pergunta/Tarefa: Escreva um método recursivo em C que conta e exibe os valores de 10 até 0. Seu método deverá possuir a seguinte assinatura: void contar_recursivamente(int n){ // sua implementação aqui } Sua saída deverá ser parecida com: 10 9 8 7 6 5 4 3 2 1 0 Veja a resolução comentada deste exercício usando C console: ---------------------------------------------------------------------- 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> // função recursiva que conta de 10 até 0; void contar_recursivamente(int n){ // vamos exibir o número atual printf("%d\n", n); // devemos prosseguir com a recursividade? if(n > 0){ // decrementa o valor de n n--; contar_recursivamente(n); // e faz uma nova chamada recursiva } } int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português // efetua uma chamada ao método recursivo fornecendo // o primeiro valor contar_recursivamente(10); printf("\n\n"); system("pause"); return 0; } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como acessar os caracteres de uma string individualmente usando índices na linguagem CQuantidade de visualizações: 9570 vezes |
Como em C uma string é vetor (array) de caracteres, tais caracteres podem ser acessados por meio de seu índice no vetor (um valor inteiro começando em 0). Este trecho de código mostra como esta tarefa pode ser realizada:---------------------------------------------------------------------- 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 <string.h> int main(int argc, char *argv[]){ char palavra[] = "Arquivo"; // vamos acessar o primeiro caractere da string char letra = palavra[0]; printf("O primeiro caractere e %c\n", letra); // vamos acessar o quinto caractere da string letra = palavra[4]; printf("O quinto caractere e %c\n", letra); puts("\n\n"); system("PAUSE"); return 0; } Ao executarmos este códigos nós teremos o seguinte resultado: O primeiro caractere e A O quinto caractere e i |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() 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 |
![]() 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 |