Functions: C Program To Find Maximum and Minimum Using Functions
Functions: C Program To Find Maximum and Minimum Using Functions
main()
{
int num1, num2, maximum, minimum;
getch();
}
/**
* Find maximum between two numbers.
*/
int max(int num1, int num2)
{
return (num1 > num2 ) ? num1 : num2;
}
/**
* Find minimum between two numbers.
*/
int min(int num1, int num2)
{
return (num1 > num2 ) ? num2 : num1;
}
Input two numbers: 10
20
Output
Maximum = 20
Minimum = 10
/* Function declarations */
int isPrime(int num);
void printPrimes(int lowerLimit, int upperLimit);
int main()
{
int lowerLimit, upperLimit;
/**
* Print all prime numbers between lower limit and upper limit.
*/
void printPrimes(int lowerLimit, int upperLimit)
{
printf("All prime number between %d to %d are: ", lowerLimit, upperLimit);
lowerLimit++;
}
}
/**
* Check whether a number is prime or not.
* Returns 1 if the number is prime otherwise 0.
*/
int isPrime(int num)
{
int i;
return 1;
}
Input
Input lower limit: 10
Input upper limit: 50
Output
Prime numbers between 10-50 are: 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47
C program to print all strong numbers between given interval using function
#include <stdio.h>
/* Function declaration */
long long fact(int num);
void printStrongNumbers(int start, int end);
int main()
{
int start, end;
return 0;
}
/**
* Print all strong numbers in a given range
*/
void printStrongNumbers(int start, int end)
{
long long sum;
int num;
start++;
}
}
/**
* Recursively find factorial of any number
*/
long long fact(int num)
{
if(num == 0)
return 1;
else
return (num * fact(num-1));
}
Input
Input lower limit: 1
Input upper limit: 1000
Output
Strong numbers between 1 to 100: 1, 2, 145
C program to find sum of digits using recursion
#include <stdio.h>
/* Function declaration */
int sumOfDigits(int num);
int main()
{
int num, sum;
sum = sumOfDigits(num);
return 0;
}
/**
* Recursive function to find sum of digits of a number
*/
int sumOfDigits(int num)
{
// Base condition
if(num == 0)
return 0;
/* Function declaration */
unsigned long long fact(int num);
int main()
{
int num;
unsigned long long factorial;
return 0;
}
/**
* Function to compute and return factorial of any number recursively.
*/
unsigned long long fact(int num)
{
// Base condition
if(num == 0)
return 1;
else
return num * fact(num - 1);
}
Input
Input any number: 5
Output
Factorial of 5 = 120
C program to generate nth fibonacci term using recursion
#include <stdio.h>
/* Function declaration */
unsigned long long fibo(int num);
int main()
{
int num;
unsigned long long fibonacci;
fibonacci = fibo(num);
return 0;
}
/**
* Recursive function to find nth Fibonacci term
*/
unsigned long long fibo(int num)
{
if(num == 0) //Base condition
return 0;
else if(num == 1) //Base condition
return 1;
else
return fibo(num-1) + fibo(num-2);
}
Input
Input any number: 10
Output
10th Fibonacci term: 55
C program to print elements of array using recursion
#include <stdio.h>
#define MAX_SIZE 100
/* Function declaration */
void printArray(int arr[], int start, int len);
int main()
{
int arr[MAX_SIZE];
int N, i;
return 0;
}
/**
* Prints an array recursively within a given range.
*/
void printArray(int arr[], int start, int len)
{
/* Recursion base condition */
if(start >= len)
return;
int main()
{
int arr[MAX_SIZE];
int N, i, sumofarray;
return 0;
}
/**
* Recursively find the sum of elements in an array.
*/
int sum(int arr[], int start, int len)
{
/* Recursion base condition */
if(start >= len)
return 0;
return (arr[start] + sum(arr, start + 1, len));
}
Input
Input size of array: 10
Input array elements: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Output
Sum of array: 55
int main()
{
int num1, num2, sum;
int *ptr1, *ptr2;
return 0;
}
Input
Input num1: 10
Input num2: 20
Output
Sum = 30
Difference = -10
Product = 200
Quotient = 0
Program to perform all arithmetic operations using pointers
#include <stdio.h>
int main()
{
float num1, num2; // Normal variables
float *ptr1, *ptr2; // Pointer variables
return 0;
}
C program to input and print array elements using pointers
#include <stdio.h>
#define MAX_SIZE 100 // Maximum array size
int main()
{
int arr[MAX_SIZE];
int N, i;
int * ptr = arr; // Pointer to arr[0]
// Make sure that pointer again points back to first array element
ptr = arr;
return 0;
}
Input
Input array size: 10
Input elements: 1
2
3
4
5
6
7
8
9
10
Output
Array elements: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
C program to reverse an array using pointers
#include <stdio.h>
/* Function declaration */
void printArr(int *arr, int size);
int main()
{
int arr[MAX_SIZE];
int size;
int *left = arr; // Pointer to arr[0]
int *right;
/*
* Input elements in array
*/
printf("Enter elements in array: ");
while(left <= right)
{
scanf("%d", left++);
}
return 0;
}
/**
* Function to print array using pointer.
*
* @arr Pointer to array.
* @size Size of the array.
*/
void printArr(int * arr, int size)
{
// Pointer to arr[size - 1]
int * arrEnd = (arr + size - 1);
/* Function declaration */
void inputArray(int * arr, int size);
int search(int * arr, int size, int toSearch);
int main()
{
int array[MAX_SIZE];
int size, toSearch, searchIndex;
/*
* Input size and elements in array
*/
printf("Enter size of array: ");
scanf("%d", &size);
return 0;
}
/**
* Function to input elements in array.
*
* @arr Pointer to integer array
* @size Size of the array
*/
void inputArray(int * arr, int size)
{
// Pointer to last array element arr[0]
int * arrEnd = (arr + size - 1);
/**
* Function to perform linear search in array. The function
* returns an integer between 0 to size-1 specifying first
* index of successful searched element in array.
*
* @arr Pointer to integer array.
* @size Size of the array.
* @toSearch Element to search within array.
*
* @return Returns -1 if element does not exists in array,
* otherwise returns element index.
*/
int search(int * arr, int size, int toSearch)
{
int index = 0;
/*
* Run a loop from start of array to last array element (arr <= arrEnd),
* until current array element does not match element to search.
*/
while(arr <= arrEnd && *arr != toSearch) {
arr++;
index++;
}
// If element is found
if(arr <= arrEnd)
return index;
return -1;
}
Input
Input array elements: 10 20 30 40 50 60 70 80 90 100
Input element to search: 25
Output
25 does not exists in array.
How to access two dimensional array using pointers in C programming?
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main()
{
int matrix[ROWS][COLS];
int i, j;
return 0;
}
/**
* Function to take input in two dimensional array (matrix)
* from user.
*
* @matrix 2D array to store input.
* @rows Total rows in 2D matrix.
* @cols Total columns in 2D matrix.
*/
void inputMatrix(int matrix[][COLS], int rows, int cols)
{
int i, j;
/**
* Function to display elements of two dimensional array (matrix)
* on console.
*
* @matrix 2D array to display as output.
* @rows Total rows in 2D matrix.
* @cols Total columns in 2D matrix.
*/
void printMatrix(int (*matrix)[COLS], int rows, int cols)
{
int i, j;
printf("\n");
}
}
Input
Input elements in 3x3 matrix:
123
456
789
Output
Elements of 3x3 matrix:
123
456
789
C program to add two matrix using pointers
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main()
{
int mat1[ROWS][COLS], mat2[ROWS][COLS], res[ROWS][COLS];
return 0;
}
/**
* Function to read input from user and store in matrix.
*
* @mat Two dimensional integer array to store input.
*/
void matrixInput(int mat[][COLS])
{
int i, j;
/**
* Function to print elements of matrix on console.
*
* @mat Two dimensional integer array to print.
*/
void matrixPrint(int mat[][COLS])
{
int i, j;
/**
* Function to add two matrices and store their result in given res
* matrix.
*
* @mat1 First matrix to add.
* @mat2 Second matrix to add.
* @res Resultant matrix to store sum of mat1 and mat2.
*/
void matrixAdd(int mat1[][COLS], int mat2[][COLS], int res[][COLS])
{
int i, j;
#define ROW 3
#define COL 3
/* Function declarations */
void matrixInput(int mat[][COL]);
void matrixPrint(int mat[][COL]);
void matrixMultiply(int mat1[][COL], int mat2[][COL], int res[][COL]);
int main()
{
int mat1[ROW][COL];
int mat2[ROW][COL];
int product[ROW][COL];
/*
* Input elements in matrices.
*/
printf("Enter elements in first matrix of size %dx%d\n", ROW, COL);
matrixInput(mat1);
return 0;
}
/**
* Function to input elements in matrix from user.
*
* @mat Two-dimensional array to store user input.
*/
void matrixInput(int mat[][COL])
{
int row, col;
/**
* Function to print elements in a two-dimensional array.
*
* @mat Two-dimensional array to print.
*/
void matrixPrint(int mat[][COL])
{
int row, col;
printf("\n");
}
}
/**
* Function to multiply two matrices.
*
* @mat1 First matrix
* @mat2 Second matrix
* @res Resultant matrix to store product of both matrices.
*/
void matrixMultiply(int mat1[][COL], int mat2[][COL], int res[][COL])
{
int row, col, i;
int sum;
/*
* Find sum of product of each elements of
* rows of first matrix and columns of second
* matrix.
*/
for (i = 0; i < COL; i++)
{
sum += (*(*(mat1 + row) + i)) * (*(*(mat2 + i) + col));
}
/*
* Store sum of product of row of first matrix
* and column of second matrix to resultant matrix.
*/
*(*(res + row) + col) = sum;
}
}
}
Input
Input elements of matrix1:
10 20 30
40 50 60
70 80 90
Input elements of matrix2:
123
456
789
Output
Product of matrices is :
300 360 420
660 810 960
1020 1260 1500
C program to find length of a string
#include <stdio.h>
#define MAX_SIZE 100 // Maximum size of the string
int main()
{
char text[MAX_SIZE]; /* Declares a string of size 100 */
char * str = text; /* Declare pointer that points to text */
int count = 0;
int main()
{
char str1[MAX_SIZE], str2[MAX_SIZE];
int res;
if(res == 0)
{
printf("Both strings are equal.");
}
else if(res < 0)
{
printf("First string is lexicographically smaller than second.");
}
else
{
printf("First string is lexicographically greater than second.");
}
return 0;
}
/**
* Compares two strings lexicographically.
*/
int compare(char * str1, char * str2)
{
while((*str1 && *str2) && (*str1 == *str2)) { str1++; str2++; }
int main()
{
char str[MAX_SIZE], reverse[MAX_SIZE];
char *s = str;
char *r = reverse;
int len = 0;
/*
* Store each character from end of original string
* to reverse string
*/
s--;
while(len >= 0)
{
*(r++) = *(--s);
len--;
}
*r = '\0';
return 0;
}
C program to sort an array using pointers
#include <stdio.h>
/* Function declaration */
void inputArray(int * arr, int size);
void printArray(int * arr, int size);
int main()
{
int arr[MAX_SIZE];
int size;
/*
* Input array size and elements.
*/
printf("Enter array size: ");
scanf("%d", &size);
printf("Enter elements in array: ");
inputArray(arr, size);
/**
* Function to take input in array elements.
*
* @arr Array to store input.
* @size Size of the array.
*/
void inputArray(int * arr, int size)
{
// Pointer to last element of array
int * arrEnd = (arr + size - 1);
/**
* Function to print all array elements.
*
* @arr Array to print.
* @size Size of the array.
*/
void printArray(int * arr, int size)
{
// Pointer to last element of array
int * arrEnd = (arr + size - 1);
/**
* Function to compare two succesive elements.
* The function returns difference of first and second integer.
*
* @num1 First integer to compare.
* @num2 Second integer to compare.
*
* @return Difference of num1 and num2.
*/
int sortAscending(int * num1, int * num2)
{
return (*num1) - (*num2);
}
/**
* Function to compare two successive elements.
* The function returns difference of second and first parameter.
*
* @num1 First integer to compare.
* @num2 Second integer to compare.
*
* @return Difference of num2 and num1.
*/
int sortDescending(int * num1, int * num2)
{
return (*num2) - (*num1);
}
/**
* Function to sort an array in ascending or descending order.
* This function is used to sort array in both order ascending or
* descending.
*
* @arr Array to sort.
* @size Size of the array.
* @compare Function pointer returning integer and takes two int *
* parameter. The function is called to get arrangement of
* two successive array elements.
*/
void sort(int * arr, int size, int (* compare)(int *, int *))
{
// Pointer to last array element
int * arrEnd = (arr + size - 1);
elemToSort++;
}