/100-days-of-c

Each day, you'll dive into a new C programming concept, solve coding problems. Topics include memory management, file handling, data structures, algorithms, networking, and more.

Primary LanguageCMIT LicenseMIT

100 Days of C Programming Challenge 🚀

gif

Introduction

Welcome to the 100 Days of C Programming Challenge! This challenge aims to enhance your C programming skills over 100 days.

Each day, you'll dive into a new C programming concept, solve coding problems, or work on practical projects. Topics include memory management, file handling, data structures, algorithms, networking, and more.

This challenge suits C beginners and intermediate learners who want to strengthen their programming abilities and build real-world applications. It's also an opportunity to connect with fellow learners, share knowledge, and collaborate.

We're excited to see your progress and the projects you create with C!

How to Participate

  1. Fork this repository and create a new branch to track your progress.
  2. Dedicate at least one hour daily to coding and learning C for the next 100 days.
  3. Share your daily progress on Twitter using the hashtag #100DaysOfCChallenge and tag us @omawchar07.
  4. Engage in discussions and share your experiences in the Discussions section of this repository.

Rules

  • Code for at least one hour daily (including weekends and holidays).
  • Focus on areas of C programming you want to learn or improve.
  • Share your daily progress on social media.
  • Avoid copying code from the internet; strive for clean and elegant solutions.
  • When possible, write tests for your code.

Resources

Project

Day Topic Name Completed
Day #1 5 Digit
Day #2 Factorial Calculator
Day #3 Looping...
Day #4 2D Array Sum
Day #5 Smallest Largest Array
Day #6 Fibonacci Number
Day #7 Decimal To Binary
Day #8 Prime Of Range
Day #9 Matrix Multiplication
Day #10 Armstrong
Day #11 Highest Value Posittion
Day #12 Simple Interest Calculater
Day #13 Find Armstrong Numbers
Day #14 Calculate GCD and LCM
Day #15 Implement a Queue
Day #16 Implement a Stack
Day #17 Check for Anagrams
Day #18 Count Vowels and Consonants
Day #19 Reverse a Sentence
Day #20 Remove Duplicate Elements from an Array
Day #21 Implement a Linked List
Day #22 Find Factorial of a Large Number
Day #23 Implement Merge Sort
Day #24 Implement Quick Sort
Day #25 Implement a Binary Tree
Day #26 Check if a String is a Palindrome
Day #27 Find the Intersection of Two Arrays
Day #28 Implement Depth-First Search (DFS)
Day #29 Implement Breadth-First Search (BFS)
Day #30 Reverse a Linked List
Day #31 Implement a Circular Queue
Day #32 Implement Dijkstra's Algorithm
Day #33 Implement Prim's Algorithm
Day #34 Check if a Number is a Perfect Square
Day #35 Find the Nth Fibonacci Number
Day #36 Implement a Hash Table
Day #37 Check if a String is an Integer
Day #38 Implement an AVL Tree
Day #39 Find the Majority Element in an Array
Day #40 Implement a Binary Search Tree
Day #41 Reverse a Queue
Day #42 Implement Insertion Sort
Day #43 Implement Deletion in a Linked List
Day #44 Find Missing Number in an Array
Day #45 Implement Radix Sort
Day #46 Check if a Linked List has a Loop
Day #47 Convert Decimal to Roman Numerals
Day #48 Implement Shell Sort
Day #49 Find the Longest Common Subsequence
Day #50 Implement a Graph
Day #51 Find the Median of Two Sorted Arrays
Day #52 Calculate Power of a Number
Day #53 Reverse a Stack
Day #54 Check if a String is a Pangram
Day #55 Implement Quick Select Algorithm
Day #56 Count Inversions in an Array
Day #57 Find the Peak Element in an Array
Day #58 Convert Roman Numerals to Decimal
Day #59 Implement a Trie
Day #60 Validate Sudoku Solution
Day #61 Find All Subsets of a Set
Day #62 Implement Topological Sorting
Day #63 Calculate Edit Distance between Two Strings
Day #64 Check if a Binary Tree is Balanced
Day #65 Reverse Words in a String
Day #66 Detect Cycle in a Directed Graph
Day #67 Find the Longest Palindromic Substring
Day #68 Implement Floyd's Tortoise and Hare Algorithm
Day #69 Serialize and Deserialize a Binary Tree
Day #70 Evaluate Reverse Polish Notation
Day #71 Implement Boyer-Moore Algorithm
Day #72 Check if a String is a Valid Parentheses Sequence
Day #73 Implement Minimum Spanning Tree using Kruskal's Algorithm
Day #74 Implement Huffman Coding
Day #75 Find the Kth Smallest Element in a Binary Search Tree
Day #76 Find Maximum Subarray Sum
Day #77 Find the Longest Increasing Subsequence
Day #78 Implement Rabin-Karp Algorithm
Day #79 Implement KMP Algorithm
Day #80 Implement Ford-Fulkerson Algorithm
Day #81 Find All Permutations of a String
Day #82 Check if a Number is a Power of Two
Day #83 Find the Shortest Path in a Grid
Day #84 Find the Number of Islands
Day #85 Implement Lowest Common Ancestor in a Binary Tree
Day #86 Find the Celebrity Problem
Day #87 Implement Levenshtein Distance
Day #88 Implement Bellman-Ford Algorithm
Day #89 Implement Ford-Fulkerson Algorithm with Edmonds-Karp Optimization
Day #90 Check if a Binary Tree is Symmetric
Day #91 Implement A* Algorithm
Day #92 Implement Johnson's Algorithm
Day #93 Implement BogoSort Algorithm
Day #94 Implement Stirling's Approximation
Day #95 Implement Newton's Method for Square Root
Day #96 Implement Catalan Number Generation
Day #97 Implement the Game of Life
Day #98 Implement Solitaire Cipher
Day #99 Implement Miller-Rabin Primality Test
Day #100 Implement the N-Queens Problem

Feel free to customize the content, project ideas, and resources based on your preferences and goals. Happy coding! 🌐👨‍💻