Transformisati niz (bez pomoćnog)

Autor zadatka: Srđan Popov <srdjanpopov@uns.ac.rs>

Unosom sa tastature je zadat niz A, neoznačenih celih brojeva od maksimalno 30 elemenata. Transformisati niz (bez pomoćnog) tako da se svaki element niza pojavi samo jednom.

Na izlazu štampati broj elemenata zadatog niza, elemente zadatog niza, broj elemenata transformisanog niza i elemente niza.

Primer rešenja

 1#include <stdio.h>
 2
 3#define MAX_SIZE 30
 4
 5int main() 
 6{
 7    int A[MAX_SIZE];
 8    int n;
 9    int i,j,k;
10    do 
11    {
12        printf("Unesite broj elemenata niza:");
13        scanf("%d", &n);
14    } while(n<=1 || n > MAX_SIZE);
15
16    for(i=0; i<n; i++) 
17    {
18        printf("A[%d]=", i);
19        scanf("%d", &A[i]);
20    }
21    printf("\n");
22    for(i=0;i<n-1;i++)
23        for(j=i+1;j<n;j++)
24            if(A[i]==A[j])
25            {
26                n--;//smanjuje se broj elemenata niza
27                for(k=j;k<n;k++)
28                    A[k]=A[k+1];
29                j--;//novi element na j-tom indeksu se mora ponovo testirati
30            }
31    for(i=0; i<n; i++) 
32    {
33        printf("\nA[%d]=%d", i,A[i]);
34    }
35    printf("\n");
36    return 0;
37}