Explore simple and easy C language programming examples. Perfect for beginners looking to practice and learn basic C coding skills.
Table of Contents
- Hello World Program
- Adding Two Numbers
- Finding the Largest Number
- Simple Calculator
- Checking for Even or Odd Number
- Finding the Factorial of a Number
- Swapping Two Numbers
- Printing the Fibonacci Sequence
- Reversing a String
- Palindrome Checker
- Counting Vowels in a String
- Bubble Sort
- Matrix Multiplication
- Linked List Operations
- Binary Search
- Simple File Handling
- Prime Number Checker
- Find the Largest Element in an Array
- Number Conversion (Decimal to Binary)
- Simple Interest Calculator
- Temperature Conversion (Fahrenheit to Celsius)
C programming is a powerful and versatile language used in a wide range of applications, from operating systems to game development. Whether you are a beginner or looking to brush up on your coding skills, practicing with simple examples can help you understand the basics and improve your coding abilities.
In this blog, we will go through various C programming examples, each designed to help you grasp the core concepts of the language. These examples will cover basic to intermediate levels, making it easy for you to follow along and learn.
Setting Up Your Development Environment for C Programming
- Install a C Compiler:
- Windows: Install MinGW from MinGW or use Microsoft Visual Studio.
- macOS: Install Xcode Command Line Tools by running
xcode-select --install
in Terminal. - Linux: Install GCC using
sudo apt-get install build-essential
(for Debian-based) or the equivalent for your distro.
- Choose an IDE or Text Editor:
- Visual Studio Code: Lightweight and customizable.
- Code::Blocks: Free IDE for C/C++.
- Dev-C++: Simple IDE for Windows.
- Eclipse CDT: IDE for C/C++.
- Write and Save Your Code:
- Create a
.c
file with your code using your chosen editor or IDE.
- Create a
- Compile and Run:
- Using GCC: Open Terminal or Command Prompt, navigate to your file's directory, and run:
gcc -o outputFileName fileName.c ./outputFileName
- Using an IDE: Open the project, build, and run it using the IDE's build and run commands.
- Using GCC: Open Terminal or Command Prompt, navigate to your file's directory, and run:
1. Hello World Program
Let's start with the most basic program in C: the "Hello, World!" program. This example helps you understand the structure of a C program.
#include <stdio.h> int main() { printf("Hello, World!"); return 0; }
Explanation:
#include <stdio.h>
: This line includes the Standard Input Output library, which allows you to use functions likeprintf
.int main() { }
: This is the main function where the execution of the program begins.printf("Hello, World!");
: This line prints "Hello, World!" to the screen.return 0;
: This returns 0 to the operating system, indicating that the program executed successfully.
2. Adding Two Numbers
This example demonstrates how to add two numbers in C.
#include <stdio.h> int main() { int num1, num2, sum; printf("Enter two integers: "); scanf("%d %d", &num1, &num2); sum = num1 + num2; printf("Sum: %d", sum); return 0; }
Explanation:
int num1, num2, sum;
: These are integer variables to store the numbers and their sum.scanf("%d %d", &num1, &num2);
: This function reads two integers from the user.sum = num1 + num2;
: This line adds the two integers.printf("Sum: %d", sum);
: This prints the sum.
3. Finding the Largest Number
In this example, we'll write a program to find the largest of three numbers.
#include <stdio.h> int main() { int num1, num2, num3; printf("Enter three integers: "); scanf("%d %d %d", &num1, &num2, &num3); if (num1 >= num2 && num1 >= num3) printf("Largest number is %d", num1); else if (num2 >= num1 && num2 >= num3) printf("Largest number is %d", num2); else printf("Largest number is %d", num3); return 0; }
Explanation:
- This program uses
if-else
statements to compare the three numbers and prints the largest one.
4. Simple Calculator
Let's create a basic calculator that performs addition, subtraction, multiplication, and division.
#include <stdio.h> int main() { char operator; double num1, num2; printf("Enter an operator (+, -, *, /): "); scanf("%c", &operator); printf("Enter two operands: "); scanf("%lf %lf", &num1, &num2); switch (operator) { case '+': printf("%.2lf + %.2lf = %.2lf", num1, num2, num1 + num2); break; case '-': printf("%.2lf - %.2lf = %.2lf", num1, num2, num1 - num2); break; case '*': printf("%.2lf * %.2lf = %.2lf", num1, num2, num1 * num2); break; case '/': printf("%.2lf / %.2lf = %.2lf", num1, num2, num1 / num2); break; default: printf("Error! Operator is not correct"); } return 0; }
Explanation:
switch (operator) { ... }
: The switch statement selects the operation based on the operator entered by the user.- Each case within the switch handles one of the four basic operations: addition, subtraction, multiplication, and division.
5. Checking for Even or Odd Number
This program checks whether a number is even or odd.
#include <stdio.h> int main() { int num; printf("Enter an integer: "); scanf("%d", &num); if (num % 2 == 0) printf("%d is even.", num); else printf("%d is odd.", num); return 0; }
Explanation:
- The modulus operator
%
is used to check if the number is divisible by 2. If the remainder is 0, the number is even; otherwise, it's odd.
6. Finding the Factorial of a Number
This program calculates the factorial of a given number.
#include <stdio.h> int main() { int num, i; unsigned long long factorial = 1; printf("Enter an integer: "); scanf("%d", &num); if (num < 0) printf("Factorial of a negative number doesn't exist."); else { for (i = 1; i <= num; ++i) { factorial *= i; } printf("Factorial of %d = %llu", num, factorial); } return 0; }
Explanation:
for (i = 1; i <= num; ++i)
: This loop multiplies all integers from 1 to the entered number.- The result is stored in the
factorial
variable.
7. Swapping Two Numbers
This example shows how to swap the values of two variables.
#include <stdio.h> int main() { int num1, num2, temp; printf("Enter first number: "); scanf("%d", &num1); printf("Enter second number: "); scanf("%d", &num2); temp = num1; num1 = num2; num2 = temp; printf("After swapping, first number = %d\n", num1); printf("After swapping, second number = %d\n", num2); return 0; }
Explanation:
temp = num1;
: The value ofnum1
is stored intemp
.num1 = num2;
: The value ofnum2
is assigned tonum1
.num2 = temp;
: The original value ofnum1
stored intemp
is now assigned tonum2
.
8. Printing the Fibonacci Sequence
This program prints the Fibonacci sequence up to a certain number of terms.
#include <stdio.h> int main() { int i, n, t1 = 0, t2 = 1, nextTerm; printf("Enter the number of terms: "); scanf("%d", &n); printf("Fibonacci Sequence: %d, %d, ", t1, t2); for (i = 3; i <= n; ++i) { nextTerm = t1 + t2; printf("%d, ", nextTerm); t1 = t2; t2 = nextTerm; } return 0; }
Explanation:
- The first two terms of the Fibonacci sequence are always 0 and 1. The next terms are obtained by adding the two preceding terms.
9. Reversing a String
This program reverses a string entered by the user.
#include <stdio.h> #include <string.h> int main() { char str[100], temp; int i, j; printf("Enter a string: "); gets(str); j = strlen(str) - 1; for (i = 0; i < j; i++, j--) { temp = str[i]; str[i] = str[j]; str[j] = temp; } printf("Reversed string: %s", str); return 0; }
Explanation:
strlen(str) - 1;
: This function returns the length of the string.- The loop swaps the characters from the start and end of the string until it reaches the middle.
10. Palindrome Checker
This program checks if a string is a palindrome.
#include <stdio.h> #include <stdio.h> int main() { char str[100], reversedStr[100]; int length, i, j; printf("Enter a string: "); gets(str); length = strlen(str); j = length - 1; for (i = 0; i < length; i++) { reversedStr[i] = str[j]; j--; } reversedStr[i] = '\0'; if (strcmp(str, reversedStr) == 0) printf("%s is a palindrome.", str); else printf("%s is not a palindrome.", str); return 0; }
Explanation:
- The program starts by asking the user to enter a string and reads it using
gets()
. This function reads the entire line of input, including spaces, and stores it in thestr
array.
- It calculates the length of the input string using
strlen(str)
. This length is stored in the variablelength
.
- The program then reverses the input string by copying characters from the end of
str
to the beginning ofreversedStr
. It uses a loop to achieve this:j
starts at the last index of the original string (length - 1
).- In each iteration, it assigns
str[j]
toreversedStr[i]
and then decrementsj
. - After the loop, it appends the null character
\0
to the end ofreversedStr
to properly terminate the string.
- It compares the original string
str
with the reversed stringreversedStr
usingstrcmp()
. If the strings are identical (i.e.,strcmp
returns0
), it means the string is a palindrome. Otherwise, it is not.
- Based on the comparison, the program prints whether the input string is a palindrome or not.
11. Counting Vowels in a String
This program counts the number of vowels in a given string.
#include <stdio.h> #include <string.h> int main() { char str[100]; int i, count = 0; printf("Enter a string: "); gets(str); for (i = 0; str[i] != '\0'; i++) { if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u' || str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U') { count++; } } printf("Number of vowels: %d", count); return 0; }
Explanation:
- This program iterates through each character in the string and checks if it is a vowel. If so, it increments the count.
12. Bubble Sort
This example demonstrates the bubble sort algorithm, a simple way to sort an array.
#include <stdio.h> int main() { int n, i, j, temp; int arr[100]; printf("Enter number of elements: "); scanf("%d", &n); printf("Enter %d integers: ", n); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } for (i = 0; i < n-1; i++) { for (j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } printf("Sorted array: "); for (i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; }
Explanation:
- The bubble sort algorithm compares adjacent elements and swaps them if they are in the wrong order. This process is repeated until the array is sorted.
13. Matrix Multiplication
This program multiplies two matrices and displays the result.
#include <stdio.h> #define MAX 10 int main() { int m, n, p, q; int a[MAX][MAX], b[MAX][MAX], result[MAX][MAX]; int i, j, k; printf("Enter rows and columns of matrix A: "); scanf("%d %d", &m, &n); printf("Enter rows and columns of matrix B: "); scanf("%d %d", &p, &q); if (n != p) { printf("Matrix multiplication is not possible."); return 1; } printf("Enter elements of matrix A:\n"); for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { scanf("%d", &a[i][j]); } } printf("Enter elements of matrix B:\n"); for (i = 0; i < p; i++) { for (j = 0; j < q; j++) { scanf("%d", &b[i][j]); } } // Initialize result matrix for (i = 0; i < m; i++) { for (j = 0; j < q; j++) { result[i][j] = 0; } } // Matrix multiplication for (i = 0; i < m; i++) { for (j = 0; j < q; j++) { for (k = 0; k < n; k++) { result[i][j] += a[i][k] * b[k][j]; } } } printf("Resultant matrix:\n"); for (i = 0; i < m; i++) { for (j = 0; j < q; j++) { printf("%d ", result[i][j]); } printf("\n"); } return 0; }
Explanation:
- This program multiplies two matrices. It first checks if multiplication is possible based on the dimensions of the matrices. Then it performs the multiplication and displays the result.
14. Linked List Operations
This program demonstrates basic operations on a singly linked list, including insertion and display.
#include <stdio.h> #include <stdlib.h> struct Node { int data; struct Node* next; }; void insert(struct Node** head_ref, int new_data) { struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } void printList(struct Node* n) { while (n != NULL) { printf("%d -> ", n->data); n = n->next; } printf("NULL\n"); } int main() { struct Node* head = NULL; insert(&head, 1); insert(&head, 2); insert(&head, 3); insert(&head, 4); printf("Linked list: "); printList(head); return 0; }
Explanation:
- This program creates a linked list, inserts nodes into it, and prints the list. It shows basic linked list operations: insertion and traversal.
15. Binary Search
This example shows how to perform a binary search on a sorted array.
#include <stdio.h> int binarySearch(int arr[], int size, int target) { int low = 0, high = size - 1, mid; while (low <= high) { mid = (low + high) / 2; if (arr[mid] == target) { return mid; } else if (arr[mid] < target) { low = mid + 1; } else { high = mid - 1; } } return -1; } int main() { int arr[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; int size = sizeof(arr) / sizeof(arr[0]); int target, result; printf("Enter the number to search: "); scanf("%d", &target); result = binarySearch(arr, size, target); if (result != -1) { printf("Element found at index %d", result); } else { printf("Element not found"); } return 0; }
Explanation:
- This program performs a binary search on a sorted array. It repeatedly divides the search interval in half to find the target element.
16. Simple File Handling
This program demonstrates basic file handling operations: writing to and reading from a file.
#include <stdio.h> int main() { FILE *file; char data[100]; // Writing to a file file = fopen("example.txt", "w"); if (file == NULL) { printf("Error opening file!"); return 1; } fprintf(file, "Hello, File Handling in C!"); fclose(file); // Reading from a file file = fopen("example.txt", "r"); if (file == NULL) { printf("Error opening file!"); return 1; } fgets(data, 100, file); fclose(file); printf("File content: %s", data); return 0; }
Explanation:
- This program writes a string to a file and then reads it back. It uses
fopen
to open files,fprintf
to write data,fgets
to read data, andfclose
to close the file.
17. Prime Number Checker
This program checks if a given number is a prime number.
#include <stdio.h> #include <stdbool.h> bool isPrime(int num) { if (num <= 1) return false; for (int i = 2; i <= num / 2; i++) { if (num % i == 0) return false; } return true; } int main() { int num; printf("Enter a number: "); scanf("%d", &num); if (isPrime(num)) { printf("%d is a prime number.", num); } else { printf("%d is not a prime number.", num); } return 0; }
Explanation:
- This program checks if a number is prime by dividing it by all numbers from 2 up to half of itself. If it is divisible by any of these numbers, it’s not a prime number.
18. Find the Largest Element in an Array
This program finds the largest element in a user-input array.
#include <stdio.h> int main() { int n, i; int arr[100], largest; printf("Enter number of elements: "); scanf("%d", &n); printf("Enter %d integers: ", n); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } largest = arr[0]; for (i = 1; i < n; i++) { if (arr[i] > largest) { largest = arr[i]; } } printf("Largest element is %d", largest); return 0; }
Explanation:
- This program finds the largest number in an array by iterating through all elements and keeping track of the largest number found.
19. Number Conversion (Decimal to Binary)
This program converts a decimal number to its binary equivalent.
#include <stdio.h> void decimalToBinary(int n) { if (n == 0) { printf("0"); return; } int binary[32], i = 0; while (n > 0) { binary[i] = n % 2; n = n / 2; i++; } printf("Binary equivalent: "); for (int j = i - 1; j >= 0; j--) { printf("%d", binary[j]); } } int main() { int num; printf("Enter a decimal number: "); scanf("%d", &num); decimalToBinary(num); return 0; }
Explanation:
- This program converts a decimal number to binary by repeatedly dividing the number by 2 and storing the remainders. It then prints these remainders in reverse order to show the binary representation.
20. Simple Interest Calculator
This program calculates simple interest based on user inputs.
#include <stdio.h> int main() { float principal, rate, time, interest; printf("Enter principal amount: "); scanf("%f", &principal); printf("Enter rate of interest: "); scanf("%f", &rate); printf("Enter time period (in years): "); scanf("%f", &time); interest = (principal * rate * time) / 100; printf("Simple Interest: %.2f", interest); return 0; }
Explanation:
- This program calculates simple interest using the formula
Interest = (Principal×Rate×Time)/100
.
21. Temperature Conversion (Fahrenheit to Celsius)
This program converts temperature from Fahrenheit to Celsius.
#include <stdio.h> int main() { float fahrenheit, celsius; printf("Enter temperature in Fahrenheit: "); scanf("%f", &fahrenheit); celsius = (fahrenheit - 32) * 5 / 9; printf("Temperature in Celsius: %.2f", celsius); return 0; }
Explanation:
- This program converts Fahrenheit to Celsius using the formula
Celsius = (Fahrenheit−32)×5/9
.
Conclusion
These C programming examples cover a wide range of concepts from basic to more advanced topics. By working through these examples, you can gain a deeper understanding of C programming and enhance your problem-solving skills. Experiment with these codes, make modifications, and see how the changes affect the output. This hands-on practice will solidify your understanding and make you more proficient in C programming.
Feel free to revisit these examples anytime you need a refresher or want to test your understanding.
That’s a wrap!
Thank you for taking the time to read this article! I hope you found it informative and enjoyable. If you did, please consider sharing it with your friends and followers. Your support helps me continue creating content like this.
Stay updated with our latest content by signing up for our email newsletter! Be the first to know about new articles and exciting updates directly in your inbox. Don't miss out—subscribe today!
If you'd like to support my work directly, you can buy me a coffee . Your generosity is greatly appreciated and helps me keep bringing you high-quality articles.
Thanks!
Faraz 😊