Repositório com exercícios de programação e estruturas de dados desenvolvidos em linguagem C. Ideal para estudantes que querem praticar vetores, matrizes e boas práticas de código.
Para facilitar o aprendizado, o repositório é dividido por tópicos. Cada pasta abaixo possui seu próprio README.md, detalhando os conceitos teóricos e pré-requisitos necessários para entender os códigos daquela seção.
- 📂fundamento-logica -Exercícios com condicionais e cálculos matemáticos.
- 📂Estruturas-repetição-Exercícios com
forewhile - 📂Vetores - Exercícios com arrays unidimensionais.
- 📂Matrizes - Exercícios Arrays bidimensionais, laços alinhados e álgebra linear aplicada.
- 📂Base Teórica e Prática - Resumos complementares, guias de sintaxe e cheat sheets para consulta rápida.
- 📂Strings - Exercícios com manipulação de strings, vetores de caracteres, funções do
<string.h>e algoritmos textuais. - 📂 Struct - Exercícios com criação de tipos de dados customizados, agrupamento de dados heterogêneos, structs aninhadas e modelagem de entidades.
- Linguagem: C
- IDE: CLion (JetBrains)
- Compilador: LLVM Clang
- Sistema de Build: CMake
- Gerador de Build: Ninja
- Debugger: LLDB
- Sistema Operacional: Windows 11
- Clone o repositório:
git clone https://github.com/omatheusilva/algoritmos-em-c.git - Entre na pasta do exercício desejado:
cd algoritmos-em-c/Vetores/rotacao-de-vetor - Compile:
gcc main.c -o programa - Execute:
- Linux/macOS:
./programa - windows:
programa.exe
- Linux/macOS:
- Abra a pasta raiz do projeto
algoritmos-em-cno CLion. - O CLion detectará automaticamente os arquivos
CMakeLists.txtdentro das pastas.. - No canto superior direito, selecione o Target
o nome do exercícioque você deseja executar. - Clique no botão Run
Play verdeou pressioneShift + F10.
Os programas usam funções para promover modularização, reutilização de código e manutenção fácil — práticas profissionais essenciais.
Muitos exercícios podem ser feitos só na main(), mas evoluir para funções ajuda a organizar melhor. Veja o exemplo:
int main(void) {
// leitura
// processamento
// saída
}void lerDados() { /* leitura */ }
void processarDados() { /* processamento */ }
void exibirResultado() { /* saída */ }
int main(void) {
lerDados();
processarDados();
exibirResultado();
return 0;
}Comece simples e evolua gradualmente!
Matheus da Silva Cezar
Estudante de Tecnologia em Redes de Computadores - UFSM
📧 dasilvacezarmatheus@gmail.com | 💼 LinkedIn