Estarei disponibilizando abaixo 30+ exercícios resolvidos utilizando a linguagem C, espero que estes contribua nos seus estudos.
Linguagem C
C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, procedural, padronizada pela ISO, criada em 1972, por Dennis Ritchie, no AT&T Bell Labs, para desenvolver o sistema operacional Unix (que foi originalmente escrito em Assembly).
Fonte: Wikipedia
Exercício 1
Faça um algorítimo que receba valores inteiros de uma matriz 5×2 e preencha um vetor inteiro de
tamanho 10. Imprima o vetor preenchido.
/* * Autor: Kelvin Santiago * Criado: 19/07/2013 */ #include<math.h> #include<stdio.h> #include<string.h> int main(){ int vetor[9], i; for (i = 0; i < 10; i++){ scanf("%d",&vetor[i]); printf("%d\n",vetor[i]); } return 0; }
Exercício 2
Fazer um algoritmo que:
Leia números de matrículas de alunos e armazene-os em um vetor até o vetor ser preenchido por 10 matrículas. Esses números são distintos, ou seja, o vetor não armazenará valores repetidos.
/* * Autor: Kelvin Santiago * Criado: 23/07/2013 */ #include<math.h> #include<stdio.h> #include<string.h> int main(){ int vetor[10], numero, cont, posicao = 0 ; while (posicao < 10){ scanf("%d",&numero); if (posicao == 0){ vetor[posicao] = numero; printf("%d\n",vetor[posicao]); posicao++; } else{ for(cont = 0; (cont < posicao)&&(vetor[cont]!= numero); cont++); if (cont >= posicao){ vetor[posicao] = numero; printf("%d\n",vetor[posicao]); posicao++; } } } return 0; }
Exercício 3
Fazer um algoritmo que:
Preencha um vetor com X números inteiros, em que o último número lido seja 999 (o último número não fará parte do vetor). E imprima o vetor na ordem inversa.
/* * Autor: Kelvin Santiago * Criado: 23/07/2013 */ #include<math.h> #include<stdio.h> #include<string.h> int main(void){ int contador = 0, numero, vetor[contador]; scanf("%d",&numero); while (numero != 999){ if (contador == 0){ vetor[contador] = numero; contador++; } else{ vetor[contador] = numero; contador++; } scanf("%d",&numero); } if (numero == 999){ contador--; } while ( contador >= 0 ){ printf("%d\n",vetor[contador]); contador--; } return 0; }
Exercício 4
Faça um programa que receba os valores de uma matriz de ordem 3 e imprimia sua diagonal principal de trás para frente.
/* * Autor: Kelvin Santiago * Criado: 23/07/2013 */ #include<math.h> #include<stdio.h> #include<string.h> int main(void){ int matriz[3][3], linha = 0, coluna = 0; for(linha = 0; linha < 3; linha++){ for (coluna = 0; coluna < 3; coluna++){ scanf("%d",&matriz[linha][coluna]); } } for (linha = 2; linha >= 0; linha--){ for(coluna = 2; coluna >=0; coluna--){ if ( linha == coluna){ printf("%d\n",matriz[linha][coluna]); } } } return 0; }
Exercício 5
Fazer um algoritmo que:
Leia um vetor contendo 10 números, que correspondem a matrículas de alunos. Ler 3 matrículas e imprima uma mensagem informando se eles estão ou não presentes no vetor.
/* * Autor: Kelvin Santiago * Criado: 23/07/2013 */ #include<math.h> #include<stdio.h> #include<string.h> int main(void){ int vetor[10],contagem, verificanumero, contagemverifica = 0, contemcerto = 0; for(contagem = 0; contagem < 10; contagem++){ scanf("%d",&vetor[contagem]); } while (contagemverifica < 3){ scanf("%d",&verificanumero); for(contagem = 0; contagem < 10; contagem++){ if (verificanumero == vetor[contagem]){ printf("A matricula %d esta presente no sistema\n",verificanumero); contemcerto++; } } if(contemcerto == 0){ printf("A matricula %d nao esta presente no sistema\n",verificanumero); } contagemverifica++; contemcerto = 0; } return 0; }
Exercício 6
Fazer um algoritmo que:
Preencha 3 vetores, o primeiro com a nota da primeira prova, o segundo com a nota da segunda prova e o terceiro com a média das 2 primeiras notas, e imprima o resultado “APROVADO” para aqueles que obtiverem uma média igual ou acima de 6, e “REPROVADO” para quem obtiverem uma média abaixo de 6.
OBS.: Saia do laço quando a primeira nota for igual a -1.
/* * Autor: Kelvin Santiago * Criado: 23/07/2013 */ #include<math.h> #include<stdio.h> #include<string.h> int main(void){ int contador = 0; float vetor[3],nota = 0 ; scanf("%f",¬a); while ( nota != -1){ vetor[contador] = nota; contador++; if (contador == 2){ vetor[contador] = (vetor[0] + vetor[1]) / 2; printf("%.2f\n",vetor[contador]); if(vetor[contador] >= 6){ printf("APROVADO\n"); } else{ printf("REPROVADO\n"); } contador = 0; } scanf("%f",¬a); } return 0; }
Exercício 7
Preencha e imprima um vetor dos 20 primeiros números primos começando com o número 5000.
* Autor: Kelvin Santiago * Criado: 24 / 07 / 2013 * */ #include <stdio.h> #include <math.h> #include <string.h> int main(void) { int contador_vetor = 0, vetor[20], numeroprimo = 0, calculo = 0,numero, contador_verificar; for (numero = 5000; contador_vetor < 20 ; numero++){ for (contador_verificar = 1; contador_verificar <= numero; contador_verificar++ ){ calculo = (numero % contador_verificar); if (calculo == 0){ numeroprimo++; } } if (numeroprimo == 2){ vetor[contador_vetor] = numero; printf("%d\n",vetor[contador_vetor]); contador_vetor++; } numeroprimo = 0; } return 0; }
Exercício 8
Fazer um algorítimo que leia os valores de um vetor inteiro de tamanho 10, e imprima o valor da soma dos números ímpares presentes neste vetor.
* Autor: Kelvin Santiago * Criado: 25 / 07 / 2013 * */ #include <stdio.h> #include <math.h> #include <string.h> int main(void) { int vetor[10], somaimpares = 0, contador; for(contador = 0; contador < 10; contador++){ scanf("%d",&vetor[contador]); if (vetor[contador] % 2 != 0){ somaimpares += vetor[contador]; } } printf("%d\n",somaimpares); return 0; }
103. Fazer um algoritmo que leia os valores de duas matrizes 3×3 e imprima a mutiplicação das duas matrizes.
* Autor: Kelvin Santiago * Criado: 25 / 07 / 2013 * */ #include <stdio.h> #include <math.h> #include <string.h> int main(void) { int matriz1[3][3], matriz2[3][3], matrizmult[3][3], linha, coluna, i, j, k; // Fazendo Scan da PRIMEIRA matriz :DD for(linha = 0; linha < 3; linha++){ for( coluna = 0; coluna < 3; coluna++){ scanf("%d",&matriz1[linha][coluna]); } } // Fazendo Scan da SEGUNDA matriz :DD for(linha = 0; linha < 3; linha++){ for( coluna = 0; coluna < 3; coluna++){ scanf("%d",&matriz2[linha][coluna]); } } // Zerando matriz da multiplicacao for(i = 0; i < 3; i++){ for(j = 0; j < 3; j++){ matrizmult[i][j]= 0; } } // Fazendo Multiplicacao de matrizes :/ for( i = 0; i < 3; i++){ for( j = 0; j < 3; j++){ for( k = 0; k < 3; k++) { matrizmult[i][j] += matriz1[i][k] * matriz2[k][j]; } } } // Imprimindo matriz mult for(linha = 0; linha < 3; linha++){ for( coluna = 0; coluna < 3; coluna++){ if( coluna == 2){ printf("%d\n",matrizmult[linha][coluna]); } else{ printf("%d ",matrizmult[linha][coluna]); } } } return 0; }
Exercício 9
Faça um algorítimo que leia um vetor de 5 posições, e preencha um segundo vetor, sendo que cada posição do segundo vetor receberá o valor do primeiro vetor na mesma posição multiplicado pelo maior valor dentro do primeiro vetor.
* Autor: Kelvin Santiago * Criado: 25 / 07 / 2013 * */ #include <stdio.h> #include <math.h> #include <string.h> int main(void) { int vetor1[5], vetor2[5], contador, maiornumero = 0; // Lendo valores do primeiro vetor e verificando maior numero :DD for(contador = 0; contador < 5; contador++){ scanf("%d",&vetor1[contador]); if (maiornumero == 0){ maiornumero = vetor1[contador]; } else if( vetor1[contador] > maiornumero){ maiornumero = vetor1[contador]; } } // Preenchendo vetor 2 multiplicando vetor 1 pelo maior numero. for( contador = 0; contador < 5; contador++){ vetor2[contador] = vetor1[contador] * maiornumero; printf("%d\n",vetor2[contador]); } return 0; }
Exercício 10
Dado dois números inteiros X e Y, preencha um vetor em que é armazenado os primeiro X números múltiplos de Y.
* Autor: Kelvin Santiago * Criado: 25 / 07 / 2013 * */ #include <stdio.h> #include <math.h> #include <string.h> int main(void) { int vetorA[5] = {0}, vetorB[8] = {0}, contador, contadorb, igualdades = 0; for(contador = 0; contador < 5; contador++){ scanf("%d",&vetorA[contador]); } for(contador = 0; contador < 8; contador++){ scanf("%d",&vetorB[contador]); } for(contador = 0; contador < 5; contador++){ for(contadorb = 0; contadorb < 8; contadorb++){ if (vetorA[contador] == vetorB[contadorb]){ if (igualdades == vetorA[contador]){ } else{ igualdades = vetorA[contador]; printf("%d\n",vetorA[contador]); } } } } return 0; }
Exercício 11
Dados dois vetores, A (5 elementos) e B (8 elementos), faça um programa que imprima todos os elementos comuns aos dois vetores.
* Autor: Kelvin Santiago * Criado: 25 / 07 / 2013 * */ #include <stdio.h> #include <math.h> #include <string.h> int main(void) { int vetorA[5] = {0}, vetorB[8] = {0}, contador, contadorb, igualdades = 0; for(contador = 0; contador < 5; contador++){ scanf("%d",&vetorA[contador]); } for(contador = 0; contador < 8; contador++){ scanf("%d",&vetorB[contador]); } for(contador = 0; contador < 5; contador++){ for(contadorb = 0; contadorb < 8; contadorb++){ if (vetorA[contador] == vetorB[contadorb]){ if (igualdades == vetorA[contador]){ } else{ igualdades = vetorA[contador]; printf("%d\n",vetorA[contador]); } } } } return 0; }
Exercício 12
Fazer um algorítimo que seja lido um número inteiro X e preencha um vetor com os divisores de X, começando do X até o número 1. Imprimir o vetor em ordem inversa (de trás para frente).
* Autor: Kelvin Santiago * Criado: 25 / 07 / 2013 * */ #include <stdio.h> #include <math.h> #include <string.h> int main(void) { int numero, divisores, numerodivisores = 0, vetor[numerodivisores], contador = 0; scanf("%d",&numero); for (divisores = 1; divisores <= numero; divisores++){ if (numero % divisores == 0){ vetor[contador] = divisores; contador++; numerodivisores++; } } for(contador =0; contador < numerodivisores; contador++){ printf("%d\n",vetor[contador]); } return 0; }
Exercício 13
Fazer um algoritmo que seja lido uma palavra e imprima a quantidade de letras que compões a palavra.
#include<stdio.h> #include<string.h> int main() { char palavra[50]; int i; scanf("%s",palavra); for(i = 0; i <= palavra[i]; i++){} printf("%d\n",i); return 0; }
Exercício 14
Fazer um algorítimo que seja lido uma palavra e imprima a quantidade de vogais que compõe a palavra.
* Autor: Kelvin Santiago * Criado: 25 / 07 / 2013 * */ #include <stdio.h> #include <math.h> #include <string.h> int main(void) { char palavra[20]; int contador, numVogais = 0; scanf("%s",palavra); for(contador=0; contador < palavra[contador]; contador++){ if (palavra[contador]== 'A' || palavra[contador]== 'E' || palavra[contador]== 'I' || palavra[contador]== 'O' || palavra[contador]== 'U'){ numVogais++; } } printf("%d\n",numVogais); return 0; }
Caso tenha alguma dúvida sobre a linguagem C ou queira deixar algum feedback deixe nos comentários abaixo.