StudyLover
  • Home
  • Study Zone
  • Profiles
  • Typing Tutor
  • Contact us
  • Sign in
StudyLover All Basic Programs
Download
  1. C Programming
  2. All C Programs
All C Programs

Unit 1

1. Hello World

#include <stdio.h>

 

int main(void) {

    printf("HELLO WORLD\n");

    return 0;

}

2. Sum and average of three numbers

#include <stdio.h>

 

int main(void) {

    double a, b, c;

    printf("Enter three numbers: ");

    if (scanf("%lf %lf %lf", &a, &b, &c) != 3) return 1;

    double sum = a + b + c;

    double avg = sum / 3.0;

    printf("Sum = %.2f\nAverage = %.2f\n", sum, avg);

    return 0;

}

3. Even or odd

#include <stdio.h>

 

int main(void) {

    int n;

    printf("Enter integer: ");

    if (scanf("%d", &n) != 1) return 1;

    printf("%d is %s\n", n, (n % 2 == 0) ? "Even" : "Odd");

    return 0;

}

4. Largest of three numbers

#include <stdio.h>

 

int main(void) {

    double a, b, c;

    printf("Enter three numbers: ");

    if (scanf("%lf %lf %lf", &a, &b, &c) != 3) return 1;

    double max = a;

    if (b > max) max = b;

    if (c > max) max = c;

    printf("Largest = %.2f\n", max);

    return 0;

}

5. Simple calculator (switch-case)

#include <stdio.h>

 

int main(void) {

    double x, y;

    char op;

    printf("Enter expression (e.g. 2 + 3): ");

    if (scanf("%lf %c %lf", &x, &op, &y) != 3) return 1;

    switch(op) {

        case '+': printf("%.2f\n", x + y); break;

        case '-': printf("%.2f\n", x - y); break;

        case '*': printf("%.2f\n", x * y); break;

        case '/': if (y==0) printf("Division by zero\n"); else printf("%.2f\n", x / y); break;

        default: printf("Unknown operator\n");

    }

    return 0;

}

6. Check leap year

#include <stdio.h>

#include <stdbool.h>

 

int main(void) {

    int year;

    printf("Enter year: ");

    if (scanf("%d", &year) != 1) return 1;

    bool leap = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

    printf("%d is %s leap year\n", year, leap ? "" : "not a");

    return 0;

}

7. Reverse a number

#include <stdio.h>

 

int main(void) {

    int n;

    printf("Enter integer: ");

    if (scanf("%d", &n) != 1) return 1;

    int num = n, rev = 0;

    while (num != 0) {

        rev = rev * 10 + (num % 10);

        num /= 10;

    }

    printf("Reversed: %d\n", rev);

    return 0;

}

8. Palindrome number

#include <stdio.h>

 

int main(void) {

    int n;

    printf("Enter integer: ");

    if (scanf("%d", &n) != 1) return 1;

    int orig = n, rev = 0;

    while (n != 0) {

        rev = rev * 10 + (n % 10);

        n /= 10;

    }

    printf("%d is %s\n", orig, (orig == rev) ? "Palindrome" : "Not palindrome");

    return 0;

}

9. Armstrong number check

#include <stdio.h>

#include <math.h>

 

int main(void) {

    int n;

    printf("Enter integer: ");

    if (scanf("%d", &n) != 1) return 1;

    int orig = n, sum = 0, digits = 0, t = n;

    while (t != 0) { digits++; t /= 10; }

    t = n;

    while (t != 0) {

        int d = t % 10;

        sum += (int)pow(d, digits);

        t /= 10;

    }

    printf("%d is %s an Armstrong number\n", orig, (sum == orig) ? "" : "not");

    return 0;

}

10. Factorial (using loop)

#include <stdio.h>

 

int main(void) {

    int n;

    printf("Enter non-negative integer: ");

    if (scanf("%d", &n) != 1 || n < 0) return 1;

    unsigned long long fact = 1;

    for (int i = 2; i <= n; i++) fact *= i;

    printf("%d! = %llu\n", n, fact);

    return 0;

}

11. Fibonacci first n terms

#include <stdio.h>

 

int main(void) {

    int n;

    printf("Enter n: ");

    if (scanf("%d", &n) != 1 || n <= 0) return 1;

    long long a = 0, b = 1;

    for (int i = 1; i <= n; i++) {

        printf("%lld%s", a, (i==n) ? "\n" : " ");

        long long t = a + b;

        a = b; b = t;

    }

    return 0;

}

12. Prime numbers between 1 and n

#include <stdio.h>

#include <math.h>

#include <stdbool.h>

 

int main(void) {

    int n;

    printf("Enter n (>1): ");

    if (scanf("%d", &n) != 1 || n < 2) return 1;

    for (int i = 2; i <= n; i++) {

        bool isPrime = true;

        int r = (int)sqrt(i);

        for (int j = 2; j <= r; j++) if (i % j == 0) { isPrime = false; break;}

        if (isPrime) printf("%d ", i);

    }

    printf("\n");

    return 0;

}

13. Multiplication table generator

#include <stdio.h>

 

int main(void) {

    int n;

    printf("Enter number: ");

    if (scanf("%d", &n) != 1) return 1;

    for (int i = 1; i <= 10; i++) {

        printf("%d x %d = %d\n", n, i, n * i);

    }

    return 0;

}

14. Sum of digits

#include <stdio.h>

 

int main(void) {

    int n;

    printf("Enter integer: ");

    if (scanf("%d", &n) != 1) return 1;

    int sum = 0, num = (n < 0) ? -n : n;

    while (num) { sum += num % 10; num /= 10; }

    printf("Sum of digits = %d\n", sum);

    return 0;

}

15. Function: sum of two ints (returns int)

#include <stdio.h>

 

int sum_int(int a, int b) { return a + b; }

 

int main(void) {

    int x, y;

    printf("Enter two integers: ");

    if (scanf("%d %d", &x, &y) != 2) return 1;

    printf("Sum = %d\n", sum_int(x, y));

    return 0;

}

16. Function: sum of int and float (returns float)

#include <stdio.h>

 

float sum_int_float(int a, float b) { return a + b; }

 

int main(void) {

    int x; float y;

    printf("Enter int and float: ");

    if (scanf("%d %f", &x, &y) != 2) return 1;

    printf("Sum = %.2f\n", sum_int_float(x, y));

    return 0;

}

17. Function: sum of two floats (returns float)

#include <stdio.h>

 

float sum_float(float a, float b) { return a + b; }

 

int main(void) {

    float x, y;

    printf("Enter two floats: ");

    if (scanf("%f %f", &x, &y) != 2) return 1;

    printf("Sum = %.2f\n", sum_float(x, y));

    return 0;

}

18. Function that takes a char and returns it

#include <stdio.h>

 

char echo_char(char c) { return c; }

 

int main(void) {

    char ch;

    printf("Enter a character: ");

    // skip whitespace

    if (scanf(" %c", &ch) != 1) return 1;

    printf("You entered: %c\n", echo_char(ch));

    return 0;

}

19. Function taking two ints, returns void (prints sum)

#include <stdio.h>

 

void print_sum(int a, int b) { printf("Sum = %d\n", a + b); }

 

int main(void) {

    int x, y;

    printf("Enter two integers: ");

    if (scanf("%d %d", &x, &y) != 2) return 1;

    print_sum(x, y);

    return 0;

}

20. Integer to character using ASCII

#include <stdio.h>

 

int main(void) {

    int val;

    printf("Enter integer (ASCII code): ");

    if (scanf("%d", &val) != 1) return 1;

    if (val < 0 || val > 127) { printf("Out of ASCII range\n"); return 1; }

    char ch = (char)val;

    printf("Character: %c\n", ch);

    return 0;

}

21. Character to integer using ASCII

#include <stdio.h>

 

int main(void) {

    char ch;

    printf("Enter a character: ");

    if (scanf(" %c", &ch) != 1) return 1;

    printf("ASCII value = %d\n", (int)ch);

    return 0;

}


Unit 2

22. Print rising star pattern

#include <stdio.h>

 

int main(void) {

    int n = 5;

    for (int i = 1; i <= n; i++) {

        for (int j = 0; j < i; j++) putchar('*');

        putchar('\n');

    }

    return 0;

}

23. Print descending star pattern

#include <stdio.h>

 

int main(void) {

    int n = 5;

    for (int i = n; i >= 1; i--) {

        for (int j = 0; j < i; j++) putchar('*');

        putchar('\n');

    }

    return 0;

}

24. Floating series 0.0 to 10.0 step 0.2 (while)

#include <stdio.h>

 

int main(void) {

    double x = 0.0;

    while (x <= 10.000001) {

        printf("%.1f\n", x);

        x += 0.2;

    }

    return 0;

}

25. Month name with do-while (repeat until exit)

#include <stdio.h>

 

int main(void) {

    int choice;

    do {

        int m;

        printf("Enter month number (1-12): ");

        if (scanf("%d", &m) != 1) return 1;

        const char *months[] = {"","January","February","March","April","May","June",

                                "July","August","September","October","November","December"};

        if (m >= 1 && m <= 12) printf("%s\n", months[m]); else printf("Invalid\n");

        printf("Enter 1 to continue, 0 to exit: ");

        if (scanf("%d", &choice) != 1) return 1;

    } while (choice == 1);

    return 0;

}

26. Even/odd 0..100 using do-while, skip 50, stop at 70

#include <stdio.h>

 

int main(void) {

    int i = 0;

    do {

        i++;

        if (i == 50) continue;

        if (i > 70) break;

        printf("%d is %s\n", i, (i % 2 == 0) ? "Even" : "Odd");

    } while (i < 100);

    return 0;

}

27. Same as 26 but with while loop

#include <stdio.h>

 

int main(void) {

    int i = 0;

    while (i < 100) {

        i++;

        if (i == 50) continue;

        if (i > 70) break;

        printf("%d is %s\n", i, (i % 2 == 0) ? "Even" : "Odd");

    }

    return 0;

}

28. Create 1D array[20] and store numbers 1..200 via scanf then print

Note: The description mentions storing numbers 1 to 200 in a 20-element array — that’s inconsistent. I'll assume they meant array size 200 or fill 20 elements by user input. I'll implement 20-element array and read values via scanf.

#include <stdio.h>

 

int main(void) {

    int arr[20];

    printf("Enter 20 integers:\n");

    for (int i = 0; i < 20; i++) if (scanf("%d", &arr[i]) != 1) return 1;

    printf("Elements are:\n");

    for (int i = 0; i < 20; i++) printf("%d ", arr[i]);

    printf("\n");

    return 0;

}

29. 2D array 3x4, read and print

#include <stdio.h>

 

int main(void) {

    int a[3][4];

    printf("Enter 12 integers:\n");

    for (int i=0;i<3;i++) for (int j=0;j<4;j++) if (scanf("%d",&a[i][j])!=1) return 1;

    printf("Matrix:\n");

    for (int i=0;i<3;i++){

        for(int j=0;j<4;j++) printf("%d ", a[i][j]);

        printf("\n");

    }

    return 0;

}

30. Addition of two 3x4 matrices

#include <stdio.h>

 

int main(void) {

    int A[3][4], B[3][4], C[3][4];

    printf("Enter elements of matrix A (3x4):\n");

    for(int i=0;i<3;i++) for(int j=0;j<4;j++) if (scanf("%d",&A[i][j])!=1) return 1;

    printf("Enter elements of matrix B (3x4):\n");

    for(int i=0;i<3;i++) for(int j=0;j<4;j++) if (scanf("%d",&B[i][j])!=1) return 1;

    for(int i=0;i<3;i++) for(int j=0;j<4;j++) C[i][j]=A[i][j]+B[i][j];

    printf("Sum matrix:\n");

    for(int i=0;i<3;i++){

        for(int j=0;j<4;j++) printf("%d ", C[i][j]);

        printf("\n");

    }

    return 0;

}

31. Subtraction of two 3x4 matrices

#include <stdio.h>

 

int main(void) {

    int A[3][4], B[3][4], C[3][4];

    printf("Enter A (3x4):\n");

    for(int i=0;i<3;i++) for(int j=0;j<4;j++) if (scanf("%d",&A[i][j])!=1) return 1;

    printf("Enter B (3x4):\n");

    for(int i=0;i<3;i++) for(int j=0;j<4;j++) if (scanf("%d",&B[i][j])!=1) return 1;

    for(int i=0;i<3;i++) for(int j=0;j<4;j++) C[i][j]=A[i][j]-B[i][j];

    printf("Difference matrix:\n");

    for(int i=0;i<3;i++){

        for(int j=0;j<4;j++) printf("%d ", C[i][j]);

        printf("\n");

    }

    return 0;

}

32. Multiply A[3x4] and B[4x5]

#include <stdio.h>

 

int main(void) {

    int A[3][4], B[4][5], C[3][5];

    printf("Enter A (3x4):\n");

    for (int i=0;i<3;i++) for (int j=0;j<4;j++) if (scanf("%d",&A[i][j])!=1) return 1;

    printf("Enter B (4x5):\n");

    for (int i=0;i<4;i++) for (int j=0;j<5;j++) if (scanf("%d",&B[i][j])!=1) return 1;

    for (int i=0;i<3;i++) for (int j=0;j<5;j++) {

        C[i][j] = 0;

        for (int k=0;k<4;k++) C[i][j] += A[i][k] * B[k][j];

    }

    printf("Product (3x5):\n");

    for (int i=0;i<3;i++){

        for (int j=0;j<5;j++) printf("%d ", C[i][j]);

        printf("\n");

    }

    return 0;

}

33. Store characters in char array and print as string

#include <stdio.h>

 

int main(void) {

    char s[201];

    printf("Enter a string (max 200 chars):\n");

    fgets(s, sizeof(s), stdin);

    printf("You entered: %s", s);

    return 0;

}

34. Store string and print using pointer arithmetic

#include <stdio.h>

 

int main(void) {

    char s[200];

    printf("Enter string: ");

    if (!fgets(s, sizeof(s), stdin)) return 1;

    char *p = s;

    while (*p && *p != '\n') {

        putchar(*p);

        p++;

    }

    putchar('\n');

    return 0;

}


Unit 3

35. Call by value demonstration

#include <stdio.h>

 

void increment(int x) {

    x++;

    printf("Inside function: x = %d\n", x);

}

 

int main(void) {

    int a = 5;

    printf("Before: a = %d\n", a);

    increment(a);

    printf("After: a = %d\n", a); // unchanged

    return 0;

}

36. Call by reference demonstration (using pointer)

#include <stdio.h>

 

void increment(int *x) {

    (*x)++;

    printf("Inside function: *x = %d\n", *x);

}

 

int main(void) {

    int a = 5;

    printf("Before: a = %d\n", a);

    increment(&a);

    printf("After: a = %d\n", a); // changed

    return 0;

}

37. Pass individual array elements to function one by one

#include <stdio.h>

 

void show(int x) { printf("%d is %s\n", x, (x % 2 == 0) ? "Even" : "Odd"); }

 

int main(void) {

    int arr[] = {1,2,3,4,5};

    int n = sizeof(arr)/sizeof(arr[0]);

    for (int i = 0; i < n; i++) show(arr[i]);

    return 0;

}

38. Pass whole array to function and print each element and even/odd

#include <stdio.h>

 

void process(int a[], int n) {

    for (int i = 0; i < n; i++)

        printf("%d: %s\n", a[i], (a[i] % 2 == 0) ? "Even" : "Odd");

}

 

int main(void) {

    int a[] = {10, 15, 20, 25, 30};

    process(a, sizeof(a)/sizeof(a[0]));

    return 0;

}

39. Fibonacci up to n terms (again)

#include <stdio.h>

 

int main(void) {

    int n;

    printf("Enter n: ");

    if (scanf("%d", &n) != 1 || n <= 0) return 1;

    long long a = 0, b = 1;

    for (int i = 1; i <= n; i++) {

        printf("%lld ", a);

        long long t = a + b; a = b; b = t;

    }

    printf("\n");

    return 0;

}

40. Ackermann function (recursive) — caution: grows fast

#include <stdio.h>

 

unsigned long ackermann(unsigned int m, unsigned int n) {

    if (m == 0) return n + 1;

    if (m > 0 && n == 0) return ackermann(m - 1, 1);

    return ackermann(m - 1, ackermann(m, n - 1));

}

 

int main(void) {

    unsigned int m, n;

    printf("Enter m and n (small values recommended, e.g., <=3): ");

    if (scanf("%u %u", &m, &n) != 2) return 1;

    printf("Ackermann(%u,%u) = %lu\n", m, n, ackermann(m, n));

    return 0;

}

41. Print addresses of variables

#include <stdio.h>

 

int main(void) {

    int i = 0;

    float f = 0.0f;

    long l = 0L;

    double d = 0.0;

    printf("Address of int: %p\n", (void*)&i);

    printf("Address of float: %p\n", (void*)&f);

    printf("Address of long: %p\n", (void*)&l);

    printf("Address of double: %p\n", (void*)&d);

    return 0;

}

42. Print sizes of types

#include <stdio.h>

 

int main(void) {

    printf("Size of int = %zu\n", sizeof(int));

    printf("Size of float = %zu\n", sizeof(float));

    printf("Size of long = %zu\n", sizeof(long));

    printf("Size of double = %zu\n", sizeof(double));

    return 0;

}


Unit 4

43. Dynamically allocate integer array using malloc

#include <stdio.h>

#include <stdlib.h>

 

int main(void) {

    size_t n;

    printf("Enter number of integers: ");

    if (scanf("%zu", &n) != 1 || n == 0) return 1;

    int *arr = malloc(n * sizeof(int));

    if (!arr) { perror("malloc"); return 1; }

    printf("Enter %zu integers:\n", n);

    for (size_t i = 0; i < n; i++) if (scanf("%d", &arr[i]) != 1) { free(arr); return 1; }

    printf("You entered:\n");

    for (size_t i = 0; i < n; i++) printf("%d ", arr[i]);

    printf("\n");

    free(arr);

    return 0;

}

44. Student structure, input two students and print info

#include <stdio.h>

 

typedef struct {

    int roll;

    char name[50];

    float marks;

} Student;

 

int main(void) {

    Student s1, s2;

    printf("Enter roll, name (no spaces) and marks for student 1:\n");

    if (scanf("%d %49s %f", &s1.roll, s1.name, &s1.marks) != 3) return 1;

    printf("Enter roll, name and marks for student 2:\n");

    if (scanf("%d %49s %f", &s2.roll, s2.name, &s2.marks) != 3) return 1;

    printf("Student 1: %d %s %.2f\n", s1.roll, s1.name, s1.marks);

    printf("Student 2: %d %s %.2f\n", s2.roll, s2.name, s2.marks);

    return 0;

}

45. Create text file output.txt and store up to 200 characters

#include <stdio.h>

 

int main(void) {

    char buf[201];

    printf("Enter text (max 200 chars):\n");

    if (!fgets(buf, sizeof(buf), stdin)) return 1;

    FILE *f = fopen("output.txt", "w");

    if (!f) { perror("fopen"); return 1; }

    fputs(buf, f);

    fclose(f);

    printf("Saved to output.txt\n");

    return 0;

}

47. Open output.txt and read up to 200 characters

#include <stdio.h>

 

int main(void) {

    char buf[201];

    FILE *f = fopen("output.txt", "r");

    if (!f) { perror("fopen"); return 1; }

    if (!fgets(buf, sizeof(buf), f)) {

        printf("No data or read error\n");

    } else {

        printf("File contents:\n%s", buf);

    }

    fclose(f);

    return 0;

}

Note: The original list had program number 46 missing and jumps 45 -> 47 (in the uploaded list). I preserved the numbering.

48. Demonstrate getch(), getche(), getchar()

#include <stdio.h>

 

/*

 Note: getch() and getche() are available in conio.h on Windows (Turbo C/Dev-C++/MinGW with conio).

 They are not standard C. For portability, this program uses getchar() and explains getch/getche usage.

*/

 

int main(void) {

    int c;

    printf("Using getchar() (press a key then Enter): ");

    c = getchar();

    while (getchar() != '\n'); // clear rest of line

    printf("\nYou entered '%c' (ASCII %d)\n", c, c);

 

    printf("Note: getch() reads a character without echo, getche() reads and echoes immediately.\n");

    printf("On systems with conio.h (Windows), include <conio.h> and use getch()/getche().\n");

    return 0;

}


 

Our Products & Services
  • Home
Connect with us
  • Contact us
  • +91 82955 87844
  • Rk6yadav@gmail.com

StudyLover - About us

The Best knowledge for Best people.

Copyright © StudyLover
Powered by Odoo - Create a free website