 # C Programming Code Examples

## C > Arrays and Matrices Code Examples

### count frequency of each element in an array

/* count frequency of each element in an array Write a C program to read elements in an array and find frequency of each element in an array. C Program to count the occurrence of each element in an array. Logic to count frequency of each element of array Finding frequency of each array element is completely based on finding duplicate elements in an array. In fact you can take this program as modified version of find duplicate program. Here you need to find total duplicate count per element instead of whole. Below is the step by step descriptive logic to count frequency of each element of array. Read input in all array elements from user. Store it in some variable say array contains all array elements. Declare another array with same size as of input array size to store frequency of each array elements. Say freq will store frequencies of all array elements. To count frequency of each element we require two loops. One outer loop to select an array element. Second inner loop to find first duplicate element of the currently selected array element by outer loop. Run an outer loop from 0 to N. The loop structure must look like for(x=0; x<N; x++). Inside outer loop, initialize a count variable to count total frequency of the currently selected array element. Say count = 1. Run an inner loop to count total duplicates of currently selected array element. Run an inner loop from x+1 to N. The loop structure should look like for(j=x+1; j<N; j++). Inside inner loop, if a duplicate element is found increment the frequency count of current array element. Which is if(array[x] == array[j]) then count++. After all duplicates has been counted. Store the total duplicate count of current element in the frequency array. Which is say freq[x] = count. Finally print the freq array to get frequencies of each array element. */ #include <stdio.h> int main() { int array, freq; int size, x, j, count; /* Input size of array */ printf("Enter size of array: "); scanf("%d", &size); /* Input elements in array */ printf("Enter elements in array: "); for(x=0; x<size; x++) { scanf("%d", &array[x]); /* Initially initialize frequencies to -1 */ freq[x] = -1; } for(x=0; x<size; x++) { count = 1; for(j=x+1; j<size; j++) { /* If duplicate element is found */ if(array[x]==array[j]) { count++; /* Make sure not to count frequency of same element again */ freq[j] = 0; } } /* If frequency of current element is not counted */ if(freq[x] != 0) { freq[x] = count; } } /* * Print frequency of each element */ printf("\nFrequency of all elements of array : \n"); for(x=0; x<size; x++) { if(freq[x] != 0) { printf("%d occurs %d times\n", array[x], freq[x]); } } return 0; }

An array is a collection of data items, all of the same type, accessed using a common name. A one-dimensional array is like a list; A two dimensional array is like a table; The C language places no limits on the number of dimensions in an array, though specific implementations may. Some texts refer to one-dimensional arrays as vectors, two-dimensional arrays as matrices, and use the general term arrays when the number of dimensions is unspecified or unimportant.

C supports nesting of loops in C. Nesting of loops is the feature in C that allows the looping of statements inside another loop. Any number of loops can be defined inside another loop, i.e., there is no restriction for defining any number of loops. The nesting level can be defined at n times. You can define any type of loop inside another loop; for example, you can define 'while' loop inside a 'for' loop.

The if-else statement is used to perform two operations for a single condition. The if-else statement is an extension to the if statement using which, we can perform two different operations, i.e., one is for the correctness of that condition, and the other is for the incorrectness of the condition. Here, we must notice that if and else block cannot be executed simiulteneously. Using if-else statement is always preferable since it always invokes an otherwise case with every if condition.

Read formatted data from stdin. Reads data from stdin and stores them according to the parameter format into the locations pointed by the additional arguments. The additional arguments should point to already allocated objects of the type specified by their corresponding format specifier within the format string. In C programming, scanf() is one of the commonly used function to take input from the user. The scanf() function reads formatted input from the standard input such as keyboards. The scanf() function enables the programmer to accept formatted inputs to the application or production code. Moreover, by using this function, the users can provide dynamic input values to the application.

Writes the C string pointed by format to the standard output (stdout). If format includes format specifiers (subsequences beginning with %), the additional arguments following format are formatted and inserted in the resulting string replacing their respective specifiers. printf format string refers to a control parameter used by a class of functions in the input/output libraries of C programming language. The string is written in a simple template language: characters are usually copied literally into the function's output, but format specifiers, which start with a % character, indicate the location and method to translate a piece of data (such as a number) to characters. "printf" is the name of one of the main C output functions, and stands for "print formatted". printf format strings are complementary to scanf format strings, which provide formatted input (parsing). In both cases these provide simple functionality and fixed format compared to more sophisticated and flexible template engines or parsers,

The for loop is used in the case where we need to execute some part of the code until the given condition is satisfied. The for loop is also called as a per-tested loop. It is better to use for loop if the number of iteration is known in advance. The for-loop statement is a very specialized while loop, which increases the readability of a program. It is frequently used to traverse the data structures like the array and linked list.

In C, the "main" function is treated the same as every function, it has a return type (and in some cases accepts inputs via parameters). The only difference is that the main function is "called" by the operating system when the user runs the program. Thus the main function is always the first code executed when a program starts. main() function is a user defined, body of the function is defined by the programmer or we can say main() is programmer/user implemented function, whose prototype is predefined in the compiler. Hence we can say that main() in c programming is user defined as well as predefined because it's prototype is predefined. main() is a system (compiler) declared function whose defined by the user, which is invoked automatically by the operating system when program is being executed.

#include is a way of including a standard or user-defined file in the program and is mostly written at the beginning of any C/C++ program. This directive is read by the preprocessor and orders it to insert the content of a user-defined or system header file into the following program. These files are mainly imported from an outside source into the current program. The process of importing such files that might be system-defined or user-defined is known as File Inclusion. This type of preprocessor directive tells the compiler to include a file in the source code program. Here are the two types of file that can be included using #include:

An array is defined as the collection of similar type of data items stored at contiguous memory locations. Arrays are the derived data type in C programming language which can store the primitive type of data such as int, char, double, float, etc. It also has the capability to store the collection of derived data types, such as pointers, structure, etc. The array is the simplest data structure where each data element can be randomly accessed by using its index number.

'Quicksort' is a divide and Conquer algorithm. 'Pick an element' from the array, this element is called as pivot element, divide the unsorted 'array of elements' in 2 arrays with values less

Calculate the addition or subtraction & trace of 2 matrices. Here trace of the matrix is the sum of the elements on the main diagonal i.e the diagonal from the upper left to the lower