ar
Feedback
C Programming Language || Hands On Coding

C Programming Language || Hands On Coding

الذهاب إلى القناة على Telegram

Hands-on C programming language challenges for beginners. Learn building logic by solving programs. Owner: @Pradeep_saii

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام C Programming Language || Hands On Coding

تُعد قناة C Programming Language || Hands On Coding (@c_programming_language_coding) في القطاع اللغوي الإنكليزية لاعباً نشطاً. يضم المجتمع حالياً 12 824 مشتركاً، محتلاً المرتبة 9 562 في فئة التكنولوجيات والتطبيقات والمرتبة 31 207 في منطقة الهند.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 12 824 مشتركاً.

بحسب آخر البيانات بتاريخ 26 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -210، وفي آخر 24 ساعة بمقدار -2، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 12.56‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 2.42‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 1 612 مشاهدة. وخلال اليوم الأول يجمع عادةً 310 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 4.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل input, string, scanf("%d, array, element.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Hands-on C programming language challenges for beginners. Learn building logic by solving programs. Owner: @Pradeep_saii

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 27 أغسطس, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

12 824
المشتركون
-224 ساعات
-357 أيام
-21030 أيام
أرشيف المشاركات
🔧 Dynamic Memory Allocation

💻 Find Maximum Element in Array Using Recursion
#include <stdio.h>

int findMaxRecursive(int arr[], int size) {
    if (size == 1) {
        return arr[0];
    } else {
        int maxRest = findMaxRecursive(arr, size - 1);
        if (arr[size - 1] > maxRest) {
            return arr[size - 1];
        } else {
            return maxRest;
        }
    }
}

int main() {
    int size, i;

    printf("Enter the size of the array: ");
    scanf("%d", &size);

    int arr[size];

    printf("Enter the elements of the array:n");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    int max = findMaxRecursive(arr, size);

    printf("Maximum element in the array is: %dn", max);

    return 0;
}
📤 Output:
Input: 5
Input: 10
Input: 5
Input: 20
Input: 15
Input: 25
Output: Maximum element in the array is: 25

Input: 3
Input: -5
Input: 0
Input: 5
Output: Maximum element in the array is: 5

Input: 1
Input: 100
Output: Maximum element in the array is: 100

💻 Tower of Hanoi
#include <stdio.h>

void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod) {
    if (n == 1) {
        printf("Move disk 1 from rod %c to rod %cn", from_rod, to_rod);
        return;
    }
    towerOfHanoi(n - 1, from_rod, aux_rod, to_rod);
    printf("Move disk %d from rod %c to rod %cn", n, from_rod, to_rod);
    towerOfHanoi(n - 1, aux_rod, to_rod, from_rod);
}

int main() {
    int num_disks;

    printf("Enter the number of disks: ");
    scanf("%d", &num_disks);

    towerOfHanoi(num_disks, 'A', 'C', 'B'); // A, B and C are names of rods

    return 0;
}
📤 Output:
Input: 3
Output: Enter the number of disks: Move disk 1 from rod A to rod C
Move disk 2 from rod A to rod B
Move disk 1 from rod C to rod B
Move disk 3 from rod A to rod C
Move disk 1 from rod B to rod A
Move disk 2 from rod B to rod C
Move disk 1 from rod A to rod C

💻 Count Digits Using Recursion
#include <stdio.h>

int countDigits(int n) {
    if (n == 0) {
        return 0;
    } else {
        return 1 + countDigits(n / 10);
    }
}

int main() {
    int num;

    printf("Enter an integer: ");
    scanf("%d", &num);

    int digitCount = countDigits(num);

    printf("Number of digits: %dn", digitCount);

    return 0;
}
📤 Output:
Input: 12345
Output: Enter an integer: Number of digits: 5

Input: 0
Output: Enter an integer: Number of digits: 0

Input: 99
Output: Enter an integer: Number of digits: 2

Input: -123
Output: Enter an integer: Number of digits: 3

💻 Check Prime Number Using Recursion
#include <stdio.h>
#include <stdbool.h>

bool isPrimeRecursive(int n, int i) {
    if (n <= 1)
        return false;
    if (i == 1)
        return true;
    if (n % i == 0)
        return false;
    return isPrimeRecursive(n, i - 1);
}

int main() {
    int num;
    printf("Enter a positive integer: ");
    scanf("%d", &num);

    if (isPrimeRecursive(num, num / 2))
        printf("%d is a prime number.n", num);
    else
        printf("%d is not a prime number.n", num);

    return 0;
}
📤 Output:
Input: 7
Output: 7 is a prime number.

Input: 12
Output: 12 is not a prime number.

Input: 1
Output: 1 is not a prime number.

💻 Product of Two Numbers Using Recursion
#include <stdio.h>

int product(int a, int b) {
    if (b == 0) {
        return 0;
    } else if (b > 0) {
        return a + product(a, b - 1);
    } else {
        return -product(a, -b);
    }
}

int main() {
    int num1, num2, result;

    printf("Enter two integers: ");
    scanf("%d %d", &num1, &num2);

    result = product(num1, num2);

    printf("Product of %d and %d is: %dn", num1, num2, result);

    return 0;
}
📤 Output:
Input: 5 3
Output: Product of 5 and 3 is: 15

Input: 4 -2
Output: Product of 4 and -2 is: -8

Input: -6 2
Output: Product of -6 and 2 is: -12

Input: -3 -4
Output: Product of -3 and -4 is: 12

Input: 7 0
Output: Product of 7 and 0 is: 0

💻 Sum of Natural Numbers Using Recursion
#include <stdio.h>

int sum(int n) {
  if (n == 0) {
    return 0;
  } else {
    return n + sum(n - 1);
  }
}

int main() {
  int num;

  printf("Enter a positive integer: ");
  scanf("%d", &num);

  if (num < 0) {
    printf("Please enter a positive integer.n");
  } else {
    int result = sum(num);
    printf("Sum = %dn", result);
  }

  return 0;
}
📤 Output:
Input: 10
Output: Enter a positive integer: Sum = 55

Input: 5
Output: Enter a positive integer: Sum = 15

Input: -3
Output: Enter a positive integer: Please enter a positive integer.

💻 Print Numbers from N to 1 Using Recursion
#include <stdio.h>

void printNumbers(int n) {
    if (n > 0) {
        printf("%d ", n);
        printNumbers(n - 1);
    }
}

int main() {
    int n;
    printf("Enter a positive integer: ");
    scanf("%d", &n);

    printNumbers(n);
    printf("n");

    return 0;
}
📤 Output:
Input: 5
Output: 5 4 3 2 1

💻 Print Numbers from 1 to N Using Recursion
#include <stdio.h>

void printNumbers(int n, int current) {
  if (current <= n) {
    printf("%d ", current);
    printNumbers(n, current + 1);
  }
}

int main() {
  int n;

  printf("Enter a positive integer N: ");
  scanf("%d", &n);

  if (n <= 0) {
    printf("Please enter a positive integer.n");
  } else {
    printNumbers(n, 1);
    printf("n");
  }

  return 0;
}
📤 Output:
Input: 5
Output: Enter a positive integer N: 1 2 3 4 5

Input: 1
Output: Enter a positive integer N: 1

Input: 0
Output: Enter a positive integer N: Please enter a positive integer.

Input: -3
Output: Enter a positive integer N: Please enter a positive integer.

💻 Decimal to Binary Conversion Using Recursion
#include <stdio.h>

void decimalToBinary(int n) {
    if (n > 0) {
        decimalToBinary(n / 2);
        printf("%d", n % 2);
    }
}

int main() {
    int decimal;
    printf("Enter a decimal number: ");
    scanf("%d", &decimal);

    printf("Binary equivalent: ");
    if (decimal == 0) {
        printf("0");
    } else {
        decimalToBinary(decimal);
    }
    printf("n");
    return 0;
}
📤 Output:
Input: 10
Output: Enter a decimal number: Binary equivalent: 1010
Input: 0
Output: Enter a decimal number: Binary equivalent: 0
Input: 25
Output: Enter a decimal number: Binary equivalent: 11001
Input: 127
Output: Enter a decimal number: Binary equivalent: 1111111
Input: 1
Output: Enter a decimal number: Binary equivalent: 1

💻 LCM Using Recursion
#include <stdio.h>

int gcd(int a, int b) {
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

int lcm(int a, int b) {
    return (a * b) / gcd(a, b);
}

int main() {
    int num1, num2;

    printf("Enter two positive integers: ");
    scanf("%d %d", &num1, &num2);

    printf("LCM of %d and %d is %dn", num1, num2, lcm(num1, num2));

    return 0;
}
📤 Output:
Input: 12 18
Output: Enter two positive integers: LCM of 12 and 18 is 36

Input: 25 15
Output: Enter two positive integers: LCM of 25 and 15 is 75

Input: 7 9
Output: Enter two positive integers: LCM of 7 and 9 is 63

💻 GCD/HCF Using Recursion
#include <stdio.h>

int gcd(int a, int b) {
  if (b == 0) {
    return a;
  } else {
    return gcd(b, a % b);
  }
}

int main() {
  int num1, num2;

  printf("Enter two positive integers: ");
  scanf("%d %d", &num1, &num2);

  printf("GCD of %d and %d is %dn", num1, num2, gcd(num1, num2));

  return 0;
}
📤 Output:
Input: 36 60
Output: Enter two positive integers: GCD of 36 and 60 is 12

💻 Power of a Number Using Recursion
#include <stdio.h>

int power(int base, int exponent) {
    if (exponent == 0) {
        return 1;
    } else if (exponent > 0) {
        return base * power(base, exponent - 1);
    } else {
        return 1 / power(base, -exponent);
    }
}

int main() {
    int base, exponent, result;

    printf("Enter the base number: ");
    scanf("%d", &base);

    printf("Enter the exponent: ");
    scanf("%d", &exponent);

    result = power(base, exponent);

    printf("%d^%d = %dn", base, exponent, result);

    return 0;
}
📤 Output:
Input: 2
Input: 3
Output: 2^3 = 8

Input: 5
Input: 0
Output: 5^0 = 1

Input: 2
Input: -2
Output: 2^-2 = 0

💻 Check Palindrome Using Recursion
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int isPalindrome(char str[], int start, int end) {
    if (start >= end) {
        return 1;
    }
    if (str[start] != str[end]) {
        return 0;
    }
    return isPalindrome(str, start + 1, end - 1);
}

int main() {
    char str[100];

    printf("Enter a string: ");
    scanf("%s", str);

    int length = strlen(str);

    if (isPalindrome(str, 0, length - 1)) {
        printf("%s is a palindromen", str);
    } else {
        printf("%s is not a palindromen", str);
    }

    return 0;
}
📤 Output:
Input: madam
Output: madam is a palindrome

Input: racecar
Output: racecar is a palindrome

Input: hello
Output: hello is not a palindrome

Input: A man, a plan, a canal: Panama
Output: A is not a palindrome

💻 Reverse a String Using Recursion
#include <stdio.h>
#include <string.h>

void reverseString(char *str, int start, int end) {
    if (start >= end) {
        return;
    }
    char temp = str[start];
    str[start] = str[end];
    str[end] = temp;
    reverseString(str, start + 1, end - 1);
}

int main() {
    char str[100];

    printf("Enter a string: ");
    scanf("%s", str);

    int length = strlen(str);
    reverseString(str, 0, length - 1);

    printf("Reversed string: %sn", str);

    return 0;
}
📤 Output:
Input: hello
Output: Reversed string: olleh

Input: world
Output: Reversed string: dlrow

Input: abcdef
Output: Reversed string: fedcba

Input: A
Output: Reversed string: A

Input: racecar
Output: Reversed string: racecar

💻 Sum of Digits Using Recursion
#include <stdio.h>

int sumOfDigits(int n) {
    if (n == 0) {
        return 0;
    }
    return (n % 10) + sumOfDigits(n / 10);
}

int main() {
    int num;
    printf("Enter a positive integer: ");
    scanf("%d", &num);
    if (num < 0) {
        printf("Please enter a positive integer.n");
        return 1;
    }
    printf("Sum of digits of %d is %dn", num, sumOfDigits(num));
    return 0;
}
📤 Output:
Input: 12345
Output: Enter a positive integer: Sum of digits of 12345 is 15

Input: 9876
Output: Enter a positive integer: Sum of digits of 9876 is 30

Input: 0
Output: Enter a positive integer: Sum of digits of 0 is 0

Input: -123
Output: Enter a positive integer: Please enter a positive integer.

💻 Fibonacci Series Using Recursion
#include <stdio.h>

int fibonacci(int n) {
  if (n <= 1) {
    return n;
  }
  return fibonacci(n - 1) + fibonacci(n - 2); // Recursive call
}

int main() {
  int num, i;

  printf("Enter the number of terms: ");
  scanf("%d", &num);

  printf("Fibonacci Series: ");
  for (i = 0; i < num; i++) {
    printf("%d ", fibonacci(i));
  }
  printf("n");

  return 0;
}
📤 Output:
Input: 10
Output: Enter the number of terms: Fibonacci Series: 0 1 1 2 3 5 8 13 21 34

💻 Factorial Using Recursion
#include <stdio.h>

int factorial(int n) {
  if (n == 0) {
    return 1;
  } else {
    return n * factorial(n - 1); // Recursive call
  }
}

int main() {
  int num;

  printf("Enter a non-negative integer: ");
  scanf("%d", &num);

  if (num < 0) {
    printf("Factorial is not defined for negative numbers.n");
  } else {
    printf("Factorial of %d = %dn", num, factorial(num));
  }

  return 0;
}
📤 Output:
Input: 5
Output: Enter a non-negative integer: Factorial of 5 = 120

Input: 0
Output: Enter a non-negative integer: Factorial of 0 = 1

Input: -2
Output: Enter a non-negative integer: Factorial is not defined for negative numbers.

🔧 Recursion

💻 Split Large File into Smaller Files
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char inputFile[100];
    char outputFilePrefix[100];
    long long chunkSize;

    printf("Enter the input file name: ");
    scanf("%s", inputFile);

    printf("Enter the output file prefix: ");
    scanf("%s", outputFilePrefix);

    printf("Enter the chunk size in bytes: ");
    scanf("%lld", &chunkSize);

    FILE *fp = fopen(inputFile, "rb");
    if (fp == NULL) {
        printf("Error opening input file.n");
        return 1;
    }

    int fileCount = 1;
    long long bytesRead = 0;
    unsigned char *buffer = (unsigned char *)malloc(chunkSize);

    if (buffer == NULL) {
        printf("Memory allocation error.n");
        fclose(fp);
        return 1;
    }

    while (1) {
        size_t bytes = fread(buffer, 1, chunkSize, fp);

        if (bytes == 0) {
            break; // End of file
        }

        char outputFileName[200];
        sprintf(outputFileName, "%s_%03d.part", outputFilePrefix, fileCount);

        FILE *outFile = fopen(outputFileName, "wb");
        if (outFile == NULL) {
            printf("Error creating output file.n");
            fclose(fp);
            free(buffer);
            return 1;
        }

        fwrite(buffer, 1, bytes, outFile);
        fclose(outFile);

        bytesRead += bytes;
        fileCount++;
    }

    fclose(fp);
    free(buffer);

    printf("File split successfully.n");

    return 0;
}
📤 Output:
Input: input.txt
Input: output
Input: 1000
Output: Enter the input file name: Enter the output file prefix: Enter the chunk size in bytes: Error opening input file.