Problem Solving Using C
1. Write a C program to find the diameter, circumference, and area of a circle using functions.
#include <stdio.h>
#define PI 3.14159
void calculateCircle(float radius) {
printf("Diameter: %.2f\n", 2 * radius);
printf("Circumference: %.2f\n", 2 * PI * radius);
printf("Area: %.2f\n", PI * radius * radius);
}
int main() {
float radius;
printf("Enter radius: ");
scanf("%f", &radius);
calculateCircle(radius);
return 0;
}
2. Write a C program to find the maximum and minimum between two numbers using functions.
#include <stdio.h>
void findMaxMin(int a, int b) {
printf("Maximum: %d\n", (a > b) ? a : b);
printf("Minimum: %d\n", (a < b) ? a : b);
}
int main() {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
findMaxMin(a, b);
return 0;
}
3. Write a C program to check whether a number is even or odd using functions.
#include <stdio.h>
void checkEvenOdd(int num) {
printf("%d is %s\n", num, (num % 2 == 0) ? "Even" : "Odd");
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
checkEvenOdd(num);
return 0;
}
4. Write a C program to check whether a number is prime, Armstrong, or perfect using functions.
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n < 2) return 0;
for (int i = 2; i <= sqrt(n); i++)
if (n % i == 0) return 0;
return 1;
}
int isArmstrong(int n) {
int sum = 0, temp = n, digits = log10(n) + 1;
while (temp) {
sum += pow(temp % 10, digits);
temp /= 10;
}
return sum = = n;
}
int isPerfect(int n) {
int sum = 0;
for (int i = 1; i < n; i++)
if (n % i = = 0) sum += i;
return sum = = n;
}
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
if (isPrime(n)) printf("%d is a Prime number\n", n);
if (isArmstrong(n)) printf("%d is an Armstrong number\n", n);
if (isPerfect(n)) printf("%d is a Perfect number\n", n);
return 0;
}
5. Write a C program to find all prime numbers within a given interval using functions.
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n < 2) return 0;
for (int i = 2; i <= sqrt(n); i++)
if (n % i == 0) return 0;
return 1;
}
void findPrimes(int low, int high) {
printf("Prime numbers: ");
for (int i = low; i <= high; i++)
if (isPrime(i)) printf("%d ", i);
printf("\n");
}
int main() {
int low, high;
printf("Enter range (low high): ");
scanf("%d %d", &low, &high);
findPrimes(low, high);
return 0;
}
6. Write a C program to find all strong numbers within a given interval using functions.
#include <stdio.h>
int factorial(int n) {
return (n == 0 || n == 1) ? 1 : n * factorial(n - 1);
}
int isStrong(int n) {
int sum = 0, temp = n;
while (temp) {
sum += factorial(temp % 10);
temp /= 10;
}
return sum == n;
}
void findStrongNumbers(int low, int high) {
printf("Strong numbers: ");
for (int i = low; i <= high; i++)
if (isStrong(i)) printf("%d ", i);
printf("\n");
}
int main() {
int low, high;
printf("Enter range (low high): ");
scanf("%d %d", &low, &high);
findStrongNumbers(low, high);
return 0;
}
7. Write a C program to print all Armstrong numbers within a given interval using functions.
#include <stdio.h>
#include <math.h>
int isArmstrong(int n) {
int sum = 0, temp = n, digits = log10(n) + 1;
while (temp) {
sum += pow(temp % 10, digits);
temp /= 10;
}
return sum == n;
}
void findArmstrongNumbers(int low, int high) {
printf("Armstrong numbers: ");
for (int i = low; i <= high; i++)
if (isArmstrong(i)) printf("%d ", i);
printf("\n");
}
int main() {
int low, high;
printf("Enter range (low high): ");
scanf("%d %d", &low, &high);
findArmstrongNumbers(low, high);
return 0;
}
8. Write a C program to print all perfect numbers within a given interval using functions.
#include <stdio.h>
int isPerfect(int n) {
int sum = 0;
for (int i = 1; i < n; i++)
if (n % i == 0) sum += i;
return sum == n;
}
void findPerfectNumbers(int low, int high) {
printf("Perfect numbers: ");
for (int i = low; i <= high; i++)
if (isPerfect(i)) printf("%d ", i);
printf("\n");
}
int main() {
int low, high;
printf("Enter range (low high): ");
scanf("%d %d", &low, &high);
findPerfectNumbers(low, high);
return 0;
}
9. Write a C program to find the power of any number using recursion.
#include <stdio.h>
int power(int base, int exp) {
if (exp == 0) return 1;
return base * power(base, exp - 1);
}
int main() {
int base, exp;
printf("Enter base and exponent: ");
scanf("%d %d", &base, &exp);
printf("%d^%d = %d\n", base, exp, power(base, exp));
return 0;
}
10. Write a C program to print all natural numbers between 1 to n using recursion.
#include <stdio.h>
void printNaturalNumbers(int n) {
if (n == 0) return;
printNaturalNumbers(n - 1);
printf("%d ", n);
}
int main() {
int n;
printf("Enter n: ");
scanf("%d", &n);
printf("Natural numbers: ");
printNaturalNumbers(n);
printf("\n");
return 0;
}
11. Write a C program to print all even or odd numbers in a given range using recursion.
.#include <stdio.h>
void printEvenOdd(int low, int high, int even) {
if (low > high) return;
if ((low % 2 == 0) == even) printf("%d ", low);
printEvenOdd(low + 1, high, even);
}
int main() {
int low, high, choice;
printf("Enter range (low high): ");
scanf("%d %d", &low, &high);
printf("Press 1 for even, 0 for odd: ");
scanf("%d", &choice);
printf(choice ? "Even numbers: " : "Odd numbers: ");
printEvenOdd(low, high, choice);
printf("\n");
return 0;
}
12. Write a C program to find the sum of all natural numbers between 1 to n using recursion.
#include <stdio.h>
int sumNaturalNumbers(int n) {
return (n == 0) ? 0 : n + sumNaturalNumbers(n - 1);
}
int main() {
int n;
printf("Enter n: ");
scanf("%d", &n);
printf("Sum of natural numbers: %d\n", sumNaturalNumbers(n));
return 0;
}
13. Write a C program to find the sum of all even or odd numbers in a given range using recursion.
#include <stdio.h>
int sumEvenOdd(int low, int high, int even) {
if (low > high) return 0;
return ((low % 2 == 0) == even ? low : 0) + sumEvenOdd(low + 1, high, even);
}
int main() {
int low, high, choice;
printf("Enter range (low high): ");
scanf("%d %d", &low, &high);
printf("Press 1 for even sum, 0 for odd sum: ");
scanf("%d", &choice);
printf("Sum: %d\n", sumEvenOdd(low, high, choice));
return 0;
}
14. Write a C program to find the reverse of any number using recursion.
#include <stdio.h>
int reverseNumber(int n, int rev) {
if (n == 0) return rev;
return reverseNumber(n / 10, rev * 10 + n % 10);
}
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
printf("Reversed number: %d\n", reverseNumber(n, 0));
return 0;
}
15. Write a C program to check whether a number is a palindrome or not using recursion.
#include <stdio.h>
int reverseNumber(int n, int rev) {
if (n == 0) return rev;
return reverseNumber(n / 10, rev * 10 + n % 10);
}
int isPalindrome(int n) {
return n == reverseNumber(n, 0);
}
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
if (isPalindrome(n))
printf("%d is a Palindrome number.\n", n);
else
printf("%d is not a Palindrome number.\n", n);
return 0;
}
16. Write a C program to find the sum of the digits of a given number using recursion.
#include <stdio.h>
int sumOfDigits(int n) {
if (n == 0) return 0;
return n % 10 + sumOfDigits(n / 10);
}
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
printf("Sum of digits: %d\n", sumOfDigits(n));
return 0;
}
17. Write a C program to find the factorial of any number using recursion. (AKTU, 2018-19)
#include <stdio.h>
int factorial(int n) {
if (n == 0 || n == 1) return 1;
return n * factorial(n - 1);
}
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n);
printf("Factorial of %d: %d\n", n, factorial(n));
return 0;
}
18. Write a C program to generate the nth Fibonacci term using recursion. (AKTU, 2021-22)
#include <stdio.h>
int fibonacci(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int n;
printf("Enter n: ");
scanf("%d", &n);
printf("Fibonacci term %d: %d\n", n, fibonacci(n));
return 0;
}
19. Write a C program to find the GCD (HCF) of two numbers using recursion.
#include <stdio.h>
int gcd(int a, int b) {
return (b == 0) ? a : gcd(b, a % b);
}
int main() {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
printf("GCD of %d and %d: %d\n", a, b, gcd(a, b));
return 0;
}
20. Write a C program to find the LCM of two numbers using recursion.
#include <stdio.h>
int gcd(int a, int b) {
return (b == 0) ? a : gcd(b, a % b);
}
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
printf("LCM of %d and %d: %d\n", a, b, lcm(a, b));
return 0;
}
21. Write a C program to display all array elements using recursion.
#include <stdio.h>
void displayArray(int arr[], int n, int i) {
if (i >= n) return;
printf("%d ", arr[i]);
displayArray(arr, n, i + 1);
}
int main() {
int n;
printf("Enter size of array: ");
scanf("%d", &n);
int arr[n];
printf("Enter array elements: ");
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
printf("Array elements: ");
displayArray(arr, n, 0);
printf("\n");
return 0;
}
22. Write a C program to find the sum of elements of an array using recursion.
#include <stdio.h>
int sumArray(int arr[], int n, int i) {
if (i >= n) return 0;
return arr[i] + sumArray(arr, n, i + 1);
}
int main() {
int n;
printf("Enter size of array: ");
scanf("%d", &n);
int arr[n];
printf("Enter array elements: ");
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
printf("Sum of array elements: %d\n", sumArray(arr, n, 0));
return 0;
}
23. Write a C program to find the maximum and minimum elements in an array using recursion.
#include <stdio.h>
int findMax(int arr[], int n, int i, int max) {
if (i >= n) return max;
if (arr[i] > max) max = arr[i];
return findMax(arr, n, i + 1, max);
}
int findMin(int arr[], int n, int i, int min) {
if (i >= n) return min;
if (arr[i] < min) min = arr[i];
return findMin(arr, n, i + 1, min);
}
int main() {
int n;
printf("Enter size of array: ");
scanf("%d", &n);
int arr[n];
printf("Enter array elements: ");
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
printf("Maximum: %d\n", findMax(arr, n, 0, arr[0]));
printf("Minimum: %d\n", findMin(arr, n, 0, arr[0]));
return 0;
}