This document outlines a series of C programming projects, ranging from beginner to advanced levels. Each project includes a brief description and a link to the main file.
A simple implementation of the classic game where the user plays against the computer. This project introduces basic concepts like input/output, conditionals, and random number generation.
2. Calculator
A basic calculator that performs simple arithmetic operations such as addition, subtraction, multiplication, and division. This project helps you understand functions and switch-case statements.
A game where the computer generates a random number and the user has to guess it. This project focuses on loops, conditionals, and random number generation.
A program that converts temperatures between Celsius, Fahrenheit, and Kelvin. This project is useful for learning about user input and arithmetic operations.
A console-based to-do list application where users can add, view, and delete tasks. This project introduces the basics of working with arrays and strings.
A program that converts amounts between different currencies. This project helps practice arithmetic operations and user input.
A simple voting system where users can vote for candidates and see the results. This project involves arrays and input/output handling.
A program that checks whether a given number is odd or even. This project is useful for learning conditionals and modulus operations.
A program that calculates the factorial of a given number. This project introduces recursion and iterative methods.
A program that checks if a given number is prime. This project involves loops and conditionals.
A program that checks if a given string or number is a palindrome. This project involves string handling and loops.
A program that generates the Fibonacci sequence up to a specified number. This project introduces loops and recursion.
13. Basic Quiz
A simple quiz application where users answer multiple-choice questions. This project covers arrays, strings, and input/output.
14. Simple Stopwatch
A console-based stopwatch application. This project involves working with time functions and loops.
A simple alarm clock that allows the user to set an alarm. This project involves working with time and input/output.
16. Grade Calculator
A program that calculates the grade based on scores entered by the user. This project covers basic arithmetic and conditionals.
A program that calculates simple interest based on user input. This project involves arithmetic operations and user input.
A program that calculates compound interest. This project involves loops and arithmetic operations.
A program that converts distances between various units. This project involves user input and arithmetic operations.
A simple login system where users can register and log in. This project covers file handling and string manipulation.
A basic voting system that allows users to cast votes and displays results. This project involves arrays and conditionals.
A program that encrypts and decrypts messages using a basic algorithm. This project introduces string manipulation and basic encryption techniques.
23. Area Calculator
A program that calculates the area of various shapes like circle, rectangle, and triangle. This project covers arithmetic operations and user input.
24. BMI Calculator
A program that calculates the Body Mass Index (BMI) based on user input. This project involves arithmetic operations and conditionals.
A program that checks if an email address is valid based on simple criteria. This project involves string manipulation and regular expressions.
A program that checks if a given year is a leap year. This project involves conditionals and arithmetic operations.
27. Power Calculator
A program that calculates the power of a number using both iterative and recursive methods. This project introduces loops and recursion.
28. Simple Calendar
A program that displays a simple calendar for a given month and year. This project involves loops and conditionals.
A program that generates simple ASCII art from user input. This project covers loops, conditionals, and string manipulation.
30. Anagram Checker
A program that checks if two given strings are anagrams. This project involves string manipulation and sorting algorithms.
31. Word Counter
A program that counts the number of words in a given text. This project involves string handling and loops.
32. File Copier
A program that copies the contents of one file to another. This project introduces file handling.
33. Vowel Counter
A program that counts the number of vowels in a given string. This project involves loops and string manipulation.
34. GCD Calculator
A program that calculates the Greatest Common Divisor (GCD) of two numbers using Euclidean algorithm. This project covers loops and conditionals.
35. LCM Calculator
A program that calculates the Least Common Multiple (LCM) of two numbers. This project involves arithmetic operations and loops.
A program that converts a binary number to decimal. This project covers loops and arithmetic operations.
A program that converts a decimal number to binary. This project involves loops and arithmetic operations.
A program that converts a hexadecimal number to decimal. This project covers string manipulation and arithmetic operations.
A program that converts a decimal number to hexadecimal. This project involves loops and string manipulation.
40. Matrix Addition
A program that adds two matrices. This project covers arrays, loops, and arithmetic operations.
A program that multiplies two matrices. This project involves arrays, loops, and arithmetic operations.
A program that calculates the transpose of a matrix. This project covers arrays and loops.
A program that calculates the determinant of a matrix. This project involves arrays and recursion.
44. Matrix Inversion
A program that calculates the inverse of a matrix. This project covers arrays, loops, and advanced arithmetic operations.
A program that generates all prime numbers up to a given limit using the Sieve of Eratosthenes algorithm. This project involves arrays and loops.
46. Bubble Sort
A program that sorts an array using the bubble sort algorithm. This project introduces basic sorting algorithms.
47. Selection Sort
A program that sorts an array using the selection sort algorithm. This project involves arrays and loops.
48. Insertion Sort
A program that sorts an array using the insertion sort algorithm. This project covers arrays and loops.
49. Merge Sort
A program that sorts an array using the merge sort algorithm. This project involves recursion and arrays.
50. Quick Sort
A program that sorts an array using the quick sort algorithm. This project covers recursion and arrays.
51. Binary Search
A program that implements binary search algorithm on a sorted array. This project introduces searching algorithms and conditionals.
52. Linear Search
A program that implements the linear search algorithm on an array. This project involves loops and conditionals.
A program that checks if a given number is a palindrome. This project involves loops and conditionals.
54. Reverse a String
A program that reverses a given string. This project involves string manipulation and loops.
55. Reverse a Number
A program that reverses the digits of a given number. This project involves loops and arithmetic operations.
A program that counts the number of digits in a given number. This project involves loops and conditionals.
A program that checks if a given number is an Armstrong number. This project involves loops and arithmetic operations.
A program that checks if a given number is a strong number. This project involves loops and conditionals.
A program that checks if a given number is a perfect number. This project involves loops and conditionals.
A program that finds the largest element in an array. This project involves loops and arrays.
A program that finds the smallest element in an array. This project involves loops and arrays.
A program that calculates the sum of elements in an array. This project involves loops and arrays.
A program that calculates the average of elements in an array. This project involves loops and arrays.
A program that finds the second largest element in an array. This project involves loops and arrays.
A program that finds the frequency of each element in an array. This project involves loops and arrays.
66. Merge Two Arrays
A program that merges two arrays into one. This project involves loops and arrays.
A program that splits an array into two halves. This project involves loops and arrays.
A program that cyclically rotates an array by one position. This project involves loops and arrays.
A program that counts the number of vowels and consonants in a string. This project involves loops and string manipulation.
A program that removes all vowels from a given string. This project involves loops and string manipulation.
A program that finds a substring within a given string. This project involves loops and string manipulation.
A program that removes all spaces from a given string. This project involves loops and string manipulation.
A program that counts the number of words in a string. This project involves loops and string manipulation.
A program that finds a substring and replaces it with another substring in a given string. This project involves loops and string manipulation.
A program that capitalizes the first letter of each word in a string. This project involves loops and string manipulation.
A program that converts all lowercase letters to uppercase in a string. This project involves loops and string manipulation.
A program that converts all uppercase letters to lowercase in a string. This project involves loops and string manipulation.
A program that counts the occurrences of a character in a string. This project involves loops and string manipulation.
A program that removes all occurrences of a character from a string. This project involves loops and string manipulation.
A program that reverses the order of words in a string. This project involves loops and string manipulation.
A program that checks if one string is a subsequence of another. This project involves loops and string manipulation.
A program that finds the longest common subsequence between two strings. This project involves loops and dynamic programming.
A program that finds the longest increasing subsequence in an array. This project involves loops and dynamic programming.
84. Edit Distance
A program that calculates the edit distance between two strings. This project involves loops and dynamic programming.
85. Knapsack Problem
A program that solves the knapsack problem using dynamic programming. This project involves loops and dynamic programming.
86. N-Queens Problem
A program that solves the N-Queens problem using backtracking. This project involves recursion and backtracking.
87. Sudoku Solver
A program that solves a given Sudoku puzzle. This project involves recursion and backtracking.
88. Rat in a Maze
A program that finds a path for a rat in a maze using backtracking. This project involves recursion and backtracking.
89. Word Search
A program that finds words in a grid using backtracking. This project involves recursion and backtracking.
A program that represents a graph using adjacency matrix and adjacency list. This project involves arrays and linked lists.
A program that implements the Depth First Search (DFS) algorithm on a graph. This project involves recursion and graphs.
A program that implements the Breadth First Search (BFS) algorithm on a graph. This project involves queues and graphs.
A program that finds the shortest path in a graph using Dijkstra's algorithm. This project involves priority queues and graphs.
A program that finds shortest paths between all pairs of vertices in a graph. This project involves dynamic programming and graphs.
95. Prim's Algorithm
A program that finds the Minimum Spanning Tree (MST) of a graph using Prim's algorithm. This project involves priority queues and graphs.
A program that finds the Minimum Spanning Tree (MST) of a graph using Kruskal's algorithm. This project involves disjoint sets and graphs.
97. Topological Sort
A program that performs topological sorting on a directed acyclic graph. This project involves recursion and graphs.
98. Huffman Coding
A program that implements Huffman coding for data compression. This project involves priority queues and trees.
A program that implements a Trie data structure for efficient information retrieval. This project involves trees and strings.
A program that simulates a Turing machine. This project involves complex logic and data structures.
If you need to use cs50 library,
1.Install cs50
2.Create a file Makefile
in the project folder and add
CC= clang
LDLIBS =-lcs50
3.Then just run
make main
4.Then run
./main