Zadatak „Max zbir”

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 čiji je zbir najveći. 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 + 4 = 10

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 j, tmp;
    for(i=0; i<n-1; i++) {
        for(j=i+1; j<n; j++) {
            if (A[i] < A[j]) {
                tmp = A[i];
                A[i] = A[j];
                A[j] = tmp;
            }
        }
    }

    printf("\nmax = %d + %d = %d", A[0], A[1], A[0] + A[1]);

    return 0;
}