Find the duplicate number in array: For example, an array with length 5 contains numbers {1, 2, 3, 4, 4}, the duplicated number is 4. Suppose that the duplicated number in the array is m
in given example. The sum of all numbers in the array, denoted as arrSum
, should be the result of 1+2+...+(n-1)+m
. It is not difficult to get the sum of 1+2+...+(n-1)
, which is denoted as sum. The duplicated number m
will be the difference of arrSum
and sum
. Following C program demonstrates how do we detect a repeated element in an integer array?.
/* An array of size N contains numbers ranging from 1 to N-1. There is exactly one number is duplicated in the array. Write a C program to find the duplicated number? */ #include <stdio.h> #define N 5 int main() { int arr[N]; //contains integers from 1 to N-1 int arrSum = 0; //sum of array elements int sum = (N * (N - 1)) / 2; //sum of 1 to N-1 int i; //loop counter printf("Enter %d integers form 1 to %d, with one duplicate:", N, N-1); for (i = 0; i < N; i++) { scanf ("%d", &arr[i]); arrSum += arr[i]; } printf("\nDuplicate number is: %d\n", arrSum - sum); }
Share this page on WhatsApp