Mam zadanie, aby wyznaczyć największy wspólny dzielnik wszystkich liczb z tablicy tab (funkcja typu int), wiedząc, że NWD(a, b, c) = NWD( a, NWD(b, c)). Wczytywanie do tablicy musi być w funkcji void. Nie rozumiem, dlaczego program nie zwraca wyniku. Czy mógłby mi ktoś pomóc i napisać, co robię niepoprawnie?
#include <iostream>
#include <cstdlib>
#include <ctime>
#define MAX 100
using namespace std;
int tab[MAX];
void wczytanie(int n){
srand(time(NULL));
for(int i = 0; i < n; i++){
tab[i] = rand() % 1001;
//cout<<tab[i]<<endl;
}
}
int NWD(int a, int b){
int nwd;
while (b != 0){
nwd = a % b;
a = b;
b = nwd;
}
return a;
}
int NWDtablica(int n){
wczytanie(n);
int c = tab[0];
for(int i = 0; i < n; i++)
c = NWD(c, tab[i]);
return c;
}
/*int SumaTablicy(int n){
wczytanie(n);
int suma = 0;
for (int i = 0; i < n; i++)
suma = suma + tab[i];
return suma;
}*/
int main()
{
int n;
cout << "Podaj n: ";
cin>>n;
wczytanie(n);
NWDtablica(n);
//cout<<tab[0];
//SumaTablicy(n);
return 0;
}