The first problem is in your read function; scanf uses pointers, so this:
Would be this instead:
scanf ("%d" , &x) ;
Because x is already a pointer. If it were not a pointer, you'd use the address of operator as you did. Since it is a pointer, you just use the variable name itself.
You have a similar problem where you're getting your error. When passing an array to a function, like so:
You just use the name of the array, like this:
int n1 , s1 ;
n1 = ReadSet(s1, &n1) ;
Finally, code tags for the forum are simple to use once you get the hang of it. It goes like this:
n1 = ReadSet( s1, &n1 );
You just put the starting [code] before all of your code, and the closing [/code] after all of your code.
...your code goes in here...
It sounds like they want two similar concepts, but done the opposite of eachother:
Where 'x' is the next spot free in the array, and you actually put the value of the set number in it.
array1[x] = some_set_member;
And the second, I'm guessing would be:
Where the set number itself is the position in the array, instead of storing the set number in the array. That is to say, if the number 5 was a member of a set, you'd make "array2 = 1;" to show that 5 was a member.
array2[some_set_member] = 1;
That's my guess anyway.