Practical programming helps you understand how C concepts are used to solve real problems. In this lesson, we will practice common beginner and intermediate C programs using variables, operators, conditions, loops, arrays, strings, functions, and pointers.
The simplest C program prints a message on the screen.
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
#include <stdio.h>
int main()
{
int a, b, sum;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
sum = a + b;
printf("Sum = %d", sum);
return 0;
}
#include <stdio.h>
int main()
{
int number;
printf("Enter a number: ");
scanf("%d", &number);
if(number % 2 == 0)
{
printf("Even number");
}
else
{
printf("Odd number");
}
return 0;
}
The remainder operator % is useful for checking divisibility
by 2.
#include <stdio.h>
int main()
{
int number;
printf("Enter a number: ");
scanf("%d", &number);
if(number > 0)
{
printf("Positive");
}
else if(number < 0)
{
printf("Negative");
}
else
{
printf("Zero");
}
return 0;
}
#include <stdio.h>
int main()
{
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
if(a > b)
{
printf("%d is largest", a);
}
else if(b > a)
{
printf("%d is largest", b);
}
else
{
printf("Both are equal");
}
return 0;
}
#include <stdio.h>
int main()
{
int a, b, c, largest;
printf("Enter three numbers: ");
scanf("%d %d %d", &a, &b, &c);
largest = a;
if(b > largest)
largest = b;
if(c > largest)
largest = c;
printf("Largest = %d", largest);
return 0;
}
Formula:
SI = (P × R × T) / 100
#include <stdio.h>
int main()
{
float p, r, t, si;
printf("Enter principal, rate and time: ");
scanf("%f %f %f", &p, &r, &t);
si = (p * r * t) / 100;
printf("Simple Interest = %.2f", si);
return 0;
}
#include <stdio.h>
int main()
{
int a, b, temp;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
temp = a;
a = b;
b = temp;
printf("After swapping: %d %d", a, b);
return 0;
}
#include <stdio.h>
int main()
{
int year;
printf("Enter year: ");
scanf("%d", &year);
if((year % 400 == 0) ||
(year % 4 == 0 && year % 100 != 0))
{
printf("Leap year");
}
else
{
printf("Not a leap year");
}
return 0;
}
#include <stdio.h>
int main()
{
int i;
for(i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
#include <stdio.h>
int main()
{
int number, i;
printf("Enter a number: ");
scanf("%d", &number);
for(i = 1; i <= 10; i++)
{
printf("%d x %d = %d\n",
number, i, number * i);
}
return 0;
}
#include <stdio.h>
int main()
{
int n, i, sum = 0;
printf("Enter n: ");
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
sum += i;
}
printf("Sum = %d", sum);
return 0;
}
#include <stdio.h>
int main()
{
int n, i;
long long factorial = 1;
printf("Enter a number: ");
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
factorial *= i;
}
printf("Factorial = %lld", factorial);
return 0;
}
#include <stdio.h>
int main()
{
int n, i, prime = 1;
printf("Enter a number: ");
scanf("%d", &n);
if(n < 2)
{
prime = 0;
}
for(i = 2; i * i <= n; i++)
{
if(n % i == 0)
{
prime = 0;
break;
}
}
if(prime)
printf("Prime number");
else
printf("Not a prime number");
return 0;
}
#include <stdio.h>
int main()
{
int n, reverse = 0, digit;
printf("Enter a number: ");
scanf("%d", &n);
while(n != 0)
{
digit = n % 10;
reverse = reverse * 10 + digit;
n /= 10;
}
printf("Reverse = %d", reverse);
return 0;
}
#include <stdio.h>
int main()
{
int n, original, reverse = 0, digit;
printf("Enter a number: ");
scanf("%d", &n);
original = n;
while(n != 0)
{
digit = n % 10;
reverse = reverse * 10 + digit;
n /= 10;
}
if(original == reverse)
printf("Palindrome number");
else
printf("Not a palindrome");
return 0;
}
#include <stdio.h>
int main()
{
int n, sum = 0, digit;
printf("Enter a number: ");
scanf("%d", &n);
while(n != 0)
{
digit = n % 10;
sum += digit;
n /= 10;
}
printf("Sum of digits = %d", sum);
return 0;
}
#include <stdio.h>
int main()
{
int n, i;
int a = 0, b = 1, next;
printf("Enter number of terms: ");
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
printf("%d ", a);
next = a + b;
a = b;
b = next;
}
return 0;
}
#include <stdio.h>
int main()
{
int numbers[5];
int i, largest;
printf("Enter 5 numbers:\n");
for(i = 0; i < 5; i++)
{
scanf("%d", &numbers[i]);
}
largest = numbers[0];
for(i = 1; i < 5; i++)
{
if(numbers[i] > largest)
{
largest = numbers[i];
}
}
printf("Largest = %d", largest);
return 0;
}
#include <stdio.h>
int main()
{
int numbers[5];
int i, sum = 0;
float average;
printf("Enter 5 numbers:\n");
for(i = 0; i < 5; i++)
{
scanf("%d", &numbers[i]);
sum += numbers[i];
}
average = (float)sum / 5;
printf("Sum = %d\n", sum);
printf("Average = %.2f", average);
return 0;
}
#include <stdio.h>
#include <ctype.h>
int main()
{
char text[100];
int i, count = 0;
printf("Enter a string: ");
fgets(text, sizeof(text), stdin);
for(i = 0; text[i] != '\0'; i++)
{
char ch = tolower((unsigned char)text[i]);
if(ch == 'a' || ch == 'e' ||
ch == 'i' || ch == 'o' ||
ch == 'u')
{
count++;
}
}
printf("Vowels = %d", count);
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char text[100];
printf("Enter a string: ");
fgets(text, sizeof(text), stdin);
printf("Length = %zu", strlen(text));
return 0;
}
The strlen() function counts characters before the terminating
null character.
#include <stdio.h>
#include <string.h>
int main()
{
char text[100];
int i;
printf("Enter a string: ");
fgets(text, sizeof(text), stdin);
int length = strlen(text);
if(length > 0 && text[length - 1] == '\n')
{
text[--length] = '\0';
}
printf("Reverse = ");
for(i = length - 1; i >= 0; i--)
{
putchar(text[i]);
}
return 0;
}
#include <stdio.h>
int maximum(int a, int b)
{
if(a > b)
return a;
return b;
}
int main()
{
int x, y;
printf("Enter two numbers: ");
scanf("%d %d", &x, &y);
printf("Maximum = %d", maximum(x, y));
return 0;
}
Using functions helps divide a program into smaller reusable parts.
#include <stdio.h>
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
swap(&a, &b);
printf("After swapping: %d %d", a, b);
return 0;
}
#include <stdio.h>
struct Student
{
int id;
char name[50];
float marks;
};
int main()
{
struct Student student;
printf("Enter student ID: ");
scanf("%d", &student.id);
printf("Enter name: ");
scanf("%49s", student.name);
printf("Enter marks: ");
scanf("%f", &student.marks);
printf("\nStudent Details\n");
printf("ID: %d\n", student.id);
printf("Name: %s\n", student.name);
printf("Marks: %.2f\n", student.marks);
return 0;
}
#include <stdio.h>
int main()
{
FILE *file;
file = fopen("data.txt", "w");
if(file == NULL)
{
printf("Unable to open file");
return 1;
}
fprintf(file, "Welcome to C programming!");
fclose(file);
printf("Data written successfully");
return 0;
}
#include <stdio.h>
int main()
{
int choice;
float a, b;
printf("1. Addition\n");
printf("2. Subtraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("Enter choice: ");
scanf("%d", &choice);
printf("Enter two numbers: ");
scanf("%f %f", &a, &b);
switch(choice)
{
case 1:
printf("Result = %.2f", a + b);
break;
case 2:
printf("Result = %.2f", a - b);
break;
case 3:
printf("Result = %.2f", a * b);
break;
case 4:
if(b == 0)
printf("Cannot divide by zero");
else
printf("Result = %.2f", a / b);
break;
default:
printf("Invalid choice");
}
return 0;
}
#include <stdio.h>
int main()
{
float marks;
printf("Enter marks: ");
scanf("%f", &marks);
if(marks >= 90)
{
printf("Grade A");
}
else if(marks >= 75)
{
printf("Grade B");
}
else if(marks >= 60)
{
printf("Grade C");
}
else if(marks >= 40)
{
printf("Grade D");
}
else
{
printf("Grade F");
}
return 0;
}
This example combines input, conditions, comparison operators, and output.
Create a simple Student Management Program using the concepts learned so far.
Your program should:
This project combines structures, functions, conditions, input/output, file handling, and error handling.
if and switch are useful for decision-making.string.h.Question: Which operator is commonly used to find the remainder when checking whether a number is even or odd?