Witam wszytkich,
Dopiero zaczynam uczyc sie programowowac i mam problem z algorytmem, ktory ma znaleźć sumę rozłacznej dwoch tablic posortowanych rosnaco. Mianowicie do dyspozycji mam dwie tablice A[1,2,3,5,8] i B[0,1,3,4,8,9,10]. Algorytm ten ma znaleźć liczby ktore nie sa wspolne dla obou tablic to bedzie [0,2,4,5,9,10]. Ponieżej przeslylam moj kod ktory posiada bledy jesli chodzi o znalezienie sumy rozlącznej. Za wszelka pomoc w poprawieniu bledu kodu z gory dziekuje.
Moj program wyglada tak
#include <stdio.h>
#include <conio.h>
int main()
{ // definiowanie zmiennych
int M,N,i,j,z,g,c,k,s;
int a[M];
int b[N];
int *wsk1;
int *wsk2;
// podawanie liczy elementow w zbiorach A i B
printf("podaj ilosc elementow zioru A " );
scanf("%d",&M);
printf("podaj ilosc elementow zioru B " );
scanf("%d",&N);
printf("\n");
if(M==0&&N==0)
printf("brak rozwiazania");
else
{
// wypelnianie zbioru A elementami
for(i=0;i<M;i++)
{
printf("podaj element zioru A a[%d] ",i );
scanf("%d",&a[i]);
}
//sortowanie elemnetow zbioru A
for(i=0;i<M;i++)
for(j=i+1;j<M;j++)
if(a[i]>a[j])
{
z=a[i];
a[i]=a[j];
a[j]=z;
}
//wyświetlenie wyniku sortowania elementow w zbiorze A
for(i=0;i<M;i++)
{
printf("%d ",a[i]);
}
//przejscie do kolejnej lini
printf("\n");
// wypelnianie zbioru B elementami
for(i=0;i<N;i++)
{
printf("podaj element zioru B b[%d] ",i );
scanf("%d",&b[i]);
}
//sortowanie elemnetow zbioru B
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(b[i]>b[j])
{
z=b[i];
b[i]=b[j];
b[j]=z;
}
//wyświetlenie wyniku sortowania elementow w zbiorze B
for(i=0;i<N;i++)
{
printf("%d ",b[i]);
}
// szukanie sumy rozłacznej zbioru A i B
printf("\n" "suma rozlaczna");
wsk1=&a[0];
wsk2=&b[0];
for(i=0;i<M;i++)
{
if(*wsk1>*wsk2)
{
printf(" %d ", *wsk2);
wsk2++;
}
else
{
printf(" %d ", *wsk1);
wsk1++;
}
if(*wsk1==*wsk2)
{
wsk1++;
wsk2++;
}
}
}
getch();
return 0;
}