Assignment 8 PPS
Problem 1: Write a C program to find maximum and minimum between two numbers using functions.
sol.
#include<stdio.h>
//Function declaration
int max(int num1, int num2);
int min(int num1, int num2);
int main() {
int num1, num2, maximum, minimum;
printf("Enter any two numbers: ");
scanf("%d%d", &num1, &num2);
maximum = max(num1, num2); // Calling maximum function
minimum = min(num1, num2); // Calling minimum function
printf("\nMaximum = %d\n", maximum);
printf("Minimum = %d", minimum);
return 0;
}
//maximum defination
int max(int num1, int num2) {
return (num1 > num2 ) ? num1 : num2;
}
//minimum defination
int min(int num1, int num2) {
return (num1 > num2 ) ? num2 : num1;
}
Problem 2: Write a C program to check whether a number is even or odd using functions.
sol.
#include<stdio.h>
int main()
{
int num;
printf("Enter any number: ");
scanf("%d", &num);
if(isEven(num)) {
printf("The number is even.");
}
else {
printf("The number is odd.");
}
return 0;
}
//function for even checking
int isEven(int num) {
return !(num & 1);
}
Problem 3: Write a C program to implement strlen (), strcat (),strcpy () using the concept of Functions.
sol.
#include<stdio.h>
int main() {
char str1[100], str2[100];
printf("Enter a string: ");
scanf("%s", str1);
printf("Length of the string: %d\n", strlenbyfn(str1)); //fn calling
printf("Enter another string to concatenate: ");
scanf("%s", str2);
strcatbyfn(str1, str2); //fn calling
printf("Concatenated string: %s\n", str1);
strcpybyfn(str1, str2); //fn calling
printf("Copied string: %s\n", str1);
return 0;
}
// Function to do strlen
int strlenbyfn(const char *str) {
int length = 0;
while (str[length] != '\0') {
length++;
}
return length;
}
// Function to do strcat
void strcatbyfn(char *dest, const char *src) {
while (*dest) {
dest++;
}
while ((*dest++ = *src++));
}
// Function to do strcpy
void strcpybyfn(char *dest, const char *src) {
while ((*dest++ = *src++));
}
Problem 4: Write a C program to find power of any number using recursion.
sol.
#include<stdio.h>
//function declaration
float pow(float base, int expo);
int main() {
float base, power;
int expo;
printf("Enter base: ");
scanf("%f", &base);
printf("Enter exponent: ");
scanf("%d", &expo);
power = pow(base, expo); // Calling pow function
printf("%.1f ^ %d = %.3f", base, expo, power);
return 0;
}
//function defination
float pow(float base, int expo)
{
if(expo == 0)
return 1;
else if(expo > 0)
return base * pow(base, expo - 1);
else
return 1 / pow(base, -expo);
}
Problem 5: Write a C program to print all even or odd numbers in given range using recursion.
sol.
#include<stdio.h>
void printEvenOdd(int cur, int limit); // Function declaration
int main() {
int lowerLimit, upperLimit;
printf("Enter lower limit: "); scanf("%d", &lowerLimit);
printf("Enter upper limit: "); scanf("%d", &upperLimit);
printf("Even/odd Numbers from %d to %d are: ", lowerLimit, upperLimit);
printEvenOdd(lowerLimit, upperLimit); //calling function
return 0;
}
//function defination
void printEvenOdd(int cur, int limit) {
if(cur > limit)
return;
printf("%d, ", cur);
printEvenOdd(cur + 2, limit); //calling same function (Recursion)
}
Problem 6: Write a C program to find sum of all natural numbers between 1 to n using recursion.
sol.
#include<stdio.h>
int sumOfNaturalNum(int start, int end); // Function declaration
int main() {
int start, end, sum;
printf("Enter lower limit: "); scanf("%d", &start);
printf("Enter upper limit: "); scanf("%d", &end);
sum = sumOfNaturalNum(start, end);
printf("Sum of natural numbers from %d to %d = %d", start, end, sum);
return 0;
}
int sumOfNaturalNum(int start, int end) { //function defination
if(start == end)
return start;
else
return start + sumOfNaturalNum(start + 1, end);
}
Problem 7: Write a C program to find factorial of any number using recursion.
sol.
#include<stdio.h>
unsigned long long fact(int num); // Function declaration
int main() {
int num;
unsigned long long factorial;
printf("Enter any number: "); scanf("%d", &num);
factorial = fact(num); // Call factorial function
printf("Factorial of %d is %llu", num, factorial);
return 0;
}
//function defination
unsigned long long fact(int num) {
if(num == 0)
return 1;
else
return num * fact(num - 1);
}
Problem 8: Write a C program to generate nth Fibonacci term using recursion.
sol.
#include<stdio.h>
unsigned long long fibo(int num); // Function declaration
int main(){
int num;
unsigned long long fibonacci;
printf("Enter any number to find nth fiboacci term: "); scanf("%d", &num);
fibonacci = fibo(num);
printf("%d fibonacci term is %llu", num, fibonacci);
return 0;
}
unsigned long long fibo(int num) { //function defination
if(num == 0)
return 0;
else if(num == 1)
return 1;
else
return fibo(num-1) + fibo(num-2);
}
Problem 9: Write a C program to find reverse of any number using recursion.
sol.
#include<stdio.h>
#include<math.h>
int reverse(int num); //Fuction declaration
int main() {
int num, rev;
printf("Enter any number: ");
scanf("%d", &num);
rev = reverse(num); //calling the reverse function
printf("Reverse of %d = %d", num, rev);
return 0;
}
int reverse(int num) {
int digit = (int) log10(num); // Find total digits in num
if(num == 0)
return 0;
return ((num%10 * pow(10, digit)) + reverse(num/10));
}
Problem 10: Write a C program to find sum of digits of a given number using recursion.
sol.
#include <stdio.h>
int sumOfDigits(int num); // Function declaration
int main() {
int num, sum;
printf("Enter any number to find sum of digits: "); scanf("%d", &num);
sum = sumOfDigits(num); //function calling
printf("Sum of digits of %d = %d", num, sum);
return 0;
}
int sumOfDigits(int num) { //function defination
if(num == 0)
return 0;
return ((num % 10) + sumOfDigits(num / 10));
}
0 comments:
Post a Comment