Zadatak „Max razlika”

Section author: Petar Marić <petarmaric@uns.ac.rs>

Dat je niz A od maksimalno 15 celobrojnih elemenata. Učitati n elemenata a zatim naći 2 elementa čija je razlika najveća. Sprovesti zaštitu unosa nad podatkom n. Ako se vrši sortiranje, svejedno je koji će se algoritam koristiti.

Za sledeće ulazne podatke:

n = 5
A = {4, 2, 6, -7, 1}

očekivani izlaz je u sledećem formatu:

A[0] = 4
A[1] = 2
A[2] = 6
A[3] = -7
A[4] = 1

max = 6 - -7 = 13

Primer rešenja

#include <stdio.h>

#define MAX_SIZE 15

int main() {
    int A[MAX_SIZE];
    int n;

    do {
        printf("Unesite broj elemenata niza (max %d): ", MAX_SIZE);
        scanf("%d", &n);
    } while(n<2 || n > MAX_SIZE);

    int i;
    for(i=0; i<n; i++) {
        printf("Unesite %d. clan niza: ", i+1);
        scanf("%d", &A[i]);
    }

    printf("\n");
    for(i=0; i<n; i++) {
        printf("A[%d] = %d\n", i, A[i]);
    }

    int min = A[0];
    int max = A[0];
    for(i=1; i<n; i++) {
        if(A[i] < min) {
            min = A[i];
        } else if (A[i] > max) {
            max = A[i];
        }
    }

    printf("\nmax = %d - %d = %d", max, min, max-min);

    return 0;
}