es
Feedback
C Programming Language || Hands On Coding

C Programming Language || Hands On Coding

Ir al canal en Telegram

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

Mostrar más

📈 Análisis del canal de Telegram C Programming Language || Hands On Coding

El canal C Programming Language || Hands On Coding (@c_programming_language_coding) en el segmento lingüístico de Inglés es un actor destacado. Actualmente la comunidad reúne a 12 824 suscriptores, ocupando la posición 9 562 en la categoría Tecnologías y Aplicaciones y el puesto 31 207 en la región India.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 12 824 suscriptores.

Según los últimos datos del 26 agosto, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -210, y en las últimas 24 horas de -2, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 12.56%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 2.42% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 1 612 visualizaciones. En el primer día suele acumular 310 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 4.
  • Intereses temáticos: El contenido se centra en temas clave como input, string, scanf("%d, array, element.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Hands-on C programming language challenges for beginners. Learn building logic by solving programs. Owner: @Pradeep_saii

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 27 agosto, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

12 824
Suscriptores
-224 horas
-357 días
-21030 días
Archivo de publicaciones
🔧 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.