Witam.
Przerobiłem ostatnio multimedialny kurs c++, teraz próbuje rozwinąć nowo nabyte umiejętności. Wpadła mi w ręce dość stara książka Krzysztofa Barteczko "Praktyczne wprowadzenie do programowania obiektowego w języku C++". Zauważyłem że zawiera mnóstwo błędów, ale jest ciekawie napisana i myślę że można z niej wiele się nauczyć. Jednak utknąłem już przy pierwszym programie (Do totolotka ;-P). Wydaje się być wszystko w porządku, ale po wpisaniu swoich liczb nie mam możliwości zatwierdzenia ich. Gdzie tu może być problem. Poniżej zamieszczam kod:
#include <stdio.h>
#include <stdlib.h>
const int mnq=3;
#define GNQ 7
#define MAXN 49
unsigned mnum[mnq];
unsigned Sum(unsigned[],int);
unsigned Seed(void)
{
return Sum(mnum,mnq)/mnq;
}
unsigned GetRn(void)
{
static int CallNr=0;
if(CallNr==0)
srand (Seed());
CallNr++;
return rand()%MAXN+1;
}
void InputMagNums(void)
{
printf("\nPodaj %d magiczne liczby: ",mnq);
for (int i=0; i<mnq;i++)
scanf("%u",mnum[i]);
}
void Out (unsigned gnum[])
{
printf("\nPodaj%d magiczne liczby: ",mnq);
for(int i=0; i<GNQ; i++)
printf("%u",gnum[i]);
}
int main(void)
{
int i;
unsigned gnum[GNQ];
InputMagNums();
unsigned temp;
int ag[MAXN];
for(i=0;i<MAXN;i++)
ag[i]=0;
i=0;
while (i<GNQ)
{
temp=GetRn();
if(ag[temp-1])
continue;
else
ag[temp-1]=1;
gnum[i++]=temp;
}
Out(gnum);
return 0;
}
unsigned Sum(unsigned n[],int i)
{
unsigned sum=0;
for(int i=0;i<1;i++)
sum+=n[i];
return sum;
}