Zadatak „Apsolutno jednaki”

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

Dat je niz A od maksimalno 10 celobrojnih elemenata. Učitati n elemenata a zatim:

  • ispisati sadržaj celokupnog niza
  • proveriti da li postoje parovi elemenata za koje važi da su po apsolutnoj vrednosti jednaki

Ograničenja:

  • sprovesti zaštitu unosa nad podatkom n

Za sledeće ulazne podatke:

Unesite broj elemenata niza (max 10): 8
Unesite A[0]: 1
Unesite A[1]: 2
Unesite A[2]: -2
Unesite A[3]: -1
Unesite A[4]: 3
Unesite A[5]: 1
Unesite A[6]: 2
Unesite A[7]: -1

očekivani izlaz je u sledećem formatu:

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

abs(A[0]) == abs(A[3]) == 1
abs(A[0]) == abs(A[5]) == 1
abs(A[0]) == abs(A[7]) == 1
abs(A[1]) == abs(A[2]) == 2
abs(A[1]) == abs(A[6]) == 2
abs(A[2]) == abs(A[6]) == 2
abs(A[3]) == abs(A[5]) == 1
abs(A[3]) == abs(A[7]) == 1
abs(A[5]) == abs(A[7]) == 1

count = 9

Primer rešenja

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

#define MAX_SIZE 10

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 A[%d]: ", i);
        scanf("%d", &A[i]);
    }

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

    int j;
    int count = 0;
    printf("\n");
    for(i=0; i<n-1; i++) {
        for(j=i+1; j<n; j++) {
            if (abs(A[i]) == abs(A[j])) {
                printf("abs(A[%d]) == abs(A[%d]) == %d\n", i, j, abs(A[i]));
                count++;
            }
        }
    }

    printf("\ncount = %d\n", count);

    return 0;
}