Program ma za zadanie liczyć NWD n liczb. Teraz dla dowolnej konfiguracji liczb wyświetla NWD=0. Proszę o pomoc w znalezienie błędu. Mój program:
#include<iostream>
using namespace std;
void wypelnij (int*a, unsigned n)
{
cout<<"Podaj liczby ";
int i;
for(i=0; i<n; i++)
cin>>a[i];
}
int nwd (int *a, unsigned n)
{
int w=0, r;
int i;
for(i=0; i<n; i++)
{
while (a[i]!=0)
{
r=w%a[i];
w=a[i];
a[i]=r;
}
w=a[i];
}
return w;
}
int main ()
{
unsigned n;
cout<<"Podaj z ilu liczb policzyc NWD ";
cin>>n;
int *a;
a=new int [n];
wypelnij (a,n);
cout<<"wartosc NWD to "<<nwd(a,n)<<endl;
delete [] a;
}