Practical C Language Code Snippets and Exercises
Posted on Jun 15, 2026 in Communication
1. Simple Program (Hello World)
#include <stdio.h>
int main() {
printf("Hello World");
return 0;
}
2. Celsius to Fahrenheit
#include <stdio.h>
int main() {
float c, f;
printf("Enter C: ");
scanf("%f", &c);
f = (1.8 * c) + 32;
printf("F = %f", f);
return 0;
}
3. Largest of Three Numbers (Nested if-else)
#include <stdio.h>
int main() {
int a, b, c;
printf("Enter 3 numbers: ");
scanf("%d%d%d", &a, &b, &c);
if (a > b) {
if (a > c) printf("%d", a); else printf("%d", c);
} else {
if (b > c) printf("%d", b); else printf("%d", c);
}
return 0;
}
4. Roots of a Quadratic Equation
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, d;
printf("Enter a, b, c: ");
scanf("%f%f%f", &a, &b, &c);
d = (b * b) - (4 * a * c);
if (d == 0) printf("Equal: %f", -b / (2 * a));
else if (d > 0) printf("Real: %f %f", (-b + sqrt(d)) / (2 * a), (-b - sqrt(d)) / (2 * a));
else printf("Imaginary: %f +/- %fi", -b / (2 * a), sqrt(-d) / (2 * a));
return 0;
}
5. Calculator (switch-case)
#include <stdio.h>
int main() {
int a, b; char op;
printf("Enter exp (e.g. 4 * 2): ");
scanf("%d %c %d", &a, &op, &b);
switch(op) {
case '+': printf("%d", a + b); break;
case '-': printf("%d", a - b); break;
case '*': printf("%d", a * b); break;
case '/': printf("%d", a / b); break;
case '%': printf("%d", a % b); break;
}
return 0;
}
6. Prime Number Checker (for loop)
#include <stdio.h>
int main() {
int n, i, p = 1;
printf("Enter number: ");
scanf("%d", &n);
for (i = 2; i <= n / 2; i++) {
if (n % i == 0) p = 0;
}
if (p && n > 1) printf("Prime"); else printf("Not Prime");
return 0;
}
7. Character Pattern Layout
#include <stdio.h>
int main() {
int i, j, k, n = 4;
for (i = 1; i <= n; i++) {
for (j = 1; j < i; j++) printf(" ");
for (k = 65; k <= 65 + n - i; k++) printf("%c ", k);
for (k = 65 + n - i - 1; k >= 65; k--) printf("%c ", k);
printf("\n");
}
return 0;
}
8. Armstrong Number Checker (while loop)
#include <stdio.h>
int main() {
int n, r, s = 0, t;
printf("Enter 3-digit number: ");
scanf("%d", &n);
t = n;
while (t > 0) {
r = t % 10;
s += r * r * r;
t /= 10;
}
if (s == n) printf("Armstrong"); else printf("Not");
return 0;
}
9. Decimal to Binary Conversion
#include <stdio.h>
int main() {
int n, r, b = 0, p = 1;
printf("Enter decimal: ");
scanf("%d", &n);
do {
r = n % 2;
b += r * p;
p *= 10;
n /= 2;
} while (n > 0);
printf("Binary: %d", b);
return 0;
}
10. Largest and Second Largest in Array
#include <stdio.h>
int main() {
int a[20], n, i, j, t;
printf("Enter size: ");
scanf("%d", &n);
printf("Enter elements:\n");
for(i = 0; i < n; i++) scanf("%d", &a[i]);
for(i = 0; i < n - 1; i++) {
for(j = 0; j < n - 1 - i; j++) {
if(a[j] > a[j+1]) {
t = a[j]; a[j] = a[j+1]; a[j+1] = t;
}
}
}
printf("Max: %d, 2nd Max: %d", a[n-1], a[n-2]);
return 0;
}
11. Matrix Multiplication (3×3)
#include <stdio.h>
int main() {
int a[3][3], b[3][3], c[3][3] = {0}, i, j, k;
printf("Enter Matrix A:\n");
for(i=0; i<3; i++) for(j=0; j<3; j++) scanf("%d", &a[i][j]);
printf("Enter Matrix B:\n");
for(i=0; i<3; i++) for(j=0; j<3; j++) scanf("%d", &b[i][j]);
for(i=0; i<3; i++)
for(j=0; j<3; j++)
for(k=0; k<3; k++) c[i][j] += a[i][k] * b[k][j];
printf("Result Matrix:\n");
for(i=0; i<3; i++) {
for(j=0; j<3; j++) printf("%d ", c[i][j]);
printf("\n");
}
return 0;
}
12. Function Parameter Passing (Factorial)
#include <stdio.h>
void fact(int n) {
int f = 1, i;
for(i = 1; i <= n; i++) f *= i;
printf("Factorial: %d", f);
}
int main() {
int n;
printf("Enter number: ");
scanf("%d", &n);
fact(n);
return 0;
}
13. GCD and LCM (Recursive)
#include <stdio.h>
int gcd(int a, int b) {
return (a == b) ? a : (a > b ? gcd(a - b, b) : gcd(a, b - a));
}
int main() {
int a, b, g, l;
printf("Enter 2 numbers: ");
scanf("%d%d", &a, &b);
g = gcd(a, b);
l = (a * b) / g;
printf("GCD: %d, LCM: %d", g, l);
return 0;
}
14. String Palindrome
#include <stdio.h>
#include <string.h>
int main() {
char s[50]; int i, len, p = 1;
printf("Enter string: ");
scanf("%s", s);
len = strlen(s);
for(i = 0; i < len / 2; i++) {
if(s[i] != s[len - 1 - i]) p = 0;
}
if(p) printf("Palindrome"); else printf("Not Palindrome");
return 0;
}
15. Array Sorting and Matrix Operations
- Part 1: Array Ascending Sorting
#include <stdio.h>
void sort(int a[], int n) {
int i, j, t;
for(i = 0; i < n - 1; i++) {
for(j = i + 1; j < n; j++) {
if(a[i] > a[j]) {
t = a[i]; a[i] = a[j]; a[j] = t;
}
}
}
}
int main() {
int a[20], n, i;
printf("Enter size: ");
scanf("%d", &n);
printf("Enter numbers:\n");
for(i = 0; i < n; i++) scanf("%d", &a[i]);
sort(a, n);
printf("Sorted array: ");
for(i = 0; i < n; i++) printf("%d ", a[i]);
return 0;
}
- Part 2: Sum of Non-Diagonal Elements
#include <stdio.h>
int main() {
int a[10][10], r, c, i, j, sum = 0;
printf("Enter rows and columns: ");
scanf("%d%d", &r, &c);
printf("Enter matrix elements:\n");
for(i = 0; i < r; i++) {
for(j = 0; j < c; j++) {
scanf("%d", &a[i][j]);
if(i != j) sum += a[i][j];
}
}
printf("Sum of non-diagonals: %d", sum);
return 0;
}
16. Name Concatenation
#include <stdio.h>
#include <string.h>
int main() {
char f[20], m[20], l[20], full[60] = "";
printf("Enter First, Middle, Last names: ");
scanf("%s%s%s", f, m, l);
strcat(full, f); strcat(full, " ");
strcat(full, m); strcat(full, " ");
strcat(full, l);
printf("Full Name: %s", full);
return 0;
}
17. Swap Two Numbers (Call by Address)
#include <stdio.h>
void swap(int *x, int *y) {
int t = *x; *x = *y; *y = t;
}
int main() {
int a, b;
printf("Enter a and b: ");
scanf("%d%d", &a, &b);
swap(&a, &b);
printf("Swapped: a = %d, b = %d", a, b);
return 0;
}
18. Reverse Array using Pointers
#include <stdio.h>
int main() {
int a[20], n, i, *p;
printf("Enter size: ");
scanf("%d", &n);
printf("Enter elements:\n");
for(i = 0; i < n; i++) scanf("%d", &a[i]);
p = &a[n - 1];
printf("Reverse order: ");
for(i = 0; i < n; i++) {
printf("%d ", *p); p--;
}
return 0;
}
19. Player Structure (Sorted by Average)
#include <stdio.h>
struct Player {
char n[20], t[20];
float av;
};
int main() {
int n, i, j; struct Player p[10], tmp;
printf("Enter number of players: ");
scanf("%d", &n);
for(i = 0; i < n; i++) {
printf("Enter Name, Team, Average for player %d: ", i + 1);
scanf("%s%s%f", p[i].n, p[i].t, &p[i].av);
}
for(i = 0; i < n - 1; i++) {
for(j = i + 1; j < n; j++) {
if(p[i].av < p[j].av) {
tmp = p[i]; p[i] = p[j]; p[j] = tmp;
}
}
}
printf("\nSorted Players:\n");
for(i = 0; i < n; i++) printf("%s | %.2f\n", p[i].n, p[i].av);
return 0;
}
20. Copy One File to Another
#include <stdio.h>
int main() {
FILE *s, *d; char ch;
s = fopen("s.txt", "r");
d = fopen("d.txt", "w");
if (s == NULL || d == NULL) {
printf("Error opening files.");
return 1;
}
while ((ch = fgetc(s)) != EOF) fputc(ch, d);
printf("Copied successfully.");
fclose(s); fclose(d);
return 0;
}
21. Create File and Count Characters
#include <stdio.h>
int main() {
FILE *fp; char ch; int c = 0;
fp = fopen("t.txt", "w");
printf("Enter text (Type '~' and press Enter to save):\n");
while ((ch = getchar()) != '~') fputc(ch, fp);
fclose(fp);
fp = fopen("t.txt", "r");
while ((ch = fgetc(fp)) != EOF) c++;
fclose(fp);
printf("Total characters: %d", c);
return 0;
}