Skip to content

Program 4 : Largest Element

Develop a program to find the largest element in a list of n numbers and Repeat the experiment for different values of n and plot a graph of the time taken versus n.

Version 1: Logic Only

c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAX 100000

void fillArray(int arr[], int n) {
    for (int i = 0; i < n; i++)
        arr[i] = rand() % 1000; 
        // Random numbers between 0-999
}

void displayArray(int arr[], int n) {
    printf("\nArray elements:\n");
    for (int i = 0; i < n; i++) {
        printf("%4d ", arr[i]);
        if ((i + 1) % 20 == 0) 
	        printf("\n");  
        // 20 per line
    }
    printf("\n");
}

int findLargest(int arr[], int n) {
    int max = arr[0];
    for (int i = 1; i < n; i++)
        if (arr[i] > max)
            max = arr[i];
    return max;
}

int main() {
    int n;
    printf("Enter size of array (max %d): ", MAX);
    scanf("%d", &n);
    if (n <= 0 || n > MAX) {
        printf("Invalid size.\n");
        return 1;
    }

    int arr[n];
    srand(time(NULL));

	fillArray(arr, n);
    displayArray(arr, n);

    int largest = findLargest(arr, n);
    printf("\nLargest element: %d\n", largest);

    return 0;
}

Version 2: With Timing

c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAX 100000

void fillArray(int arr[], int n) {
    for (int i = 0; i < n; i++)
        arr[i] = rand() % 1000;
}

void displayArray(int arr[], int n) {
    printf("\nArray elements:\n");
    for (int i = 0; i < n; i++) {
        printf("%4d ", arr[i]);
        if ((i + 1) % 20 == 0) printf("\n");
    }
    printf("\n");
}

int findLargest(int arr[], int n) {
    int max = arr[0];
    for (int i = 1; i < n; i++)
        if (arr[i] > max)
            max = arr[i];
    return max;
}

int main() {
    int n;
    clock_t start, end;
    double time_taken;

    printf("Enter size of array (max %d): ", MAX);
    scanf("%d", &n);
    if (n <= 0 || n > MAX) {
        printf("Invalid size.\n");
        return 1;
    }

    int arr[n];
    srand(time(NULL));
    fillArray(arr, n);
    displayArray(arr, n);

    start = clock();
    int largest = findLargest(arr, n);
    end = clock();

    time_taken = ((double)(end - start)) / CLOCKS_PER_SEC;

    printf("\nLargest element: %d\n", largest);
    printf("Time taken to find the largest element: %.6f miliseconds\n", time_taken*1000);

    return 0;
}

Made with ❤️ for students, by a fellow learner.