1. ## Function to read in two arrays

I'm relatively new to programming and I have to write a function that reads in input from the user and to fill two arrays then compare them. I guess what I'm confused on is how to read in both arrays.

This is what I'm supposed to do,

Write a table_diff fuction that compares two arrays of integers and returns the subscript of the first place they differ. If the arrays are the same, the function should return -1 ex:

345 & 345 --> -1 (same)

345 & 346 --> 2 (differ at index 2)

1234 & 123 --> 3 (differ at index 3)

But what im having trouble with is writing the function to read the two arrays in. Im not sure if i can do it in one single while loop or if i need two?

This is what i have, any help is appreciated!

Code:
```int table_fill(int a[], int b[],int max)
{

int value;
int r;
int *ptra = a;
int *ptrb = b;
int *endptra = ptra - max;
int *endptrb = ptrb - max;

while((r = scanf("%i", &value)) != 1 && ptra < endptra)
{
*(ptra++) = value;

if (r==1)
else if(r != EOF)
printf("invalid char");
}

while((r = scanf("%i\n", &value))!= 1 && ptrb < endptrb){
*(ptrb++) = value;

if (r==1)
else if(r != EOF)
printf("invalid char");
}

}```

2. Maybe it's required for the assignment, but why write a function that reads into two arrays? Why not write a function that reads into one array, and then call it twice?

3. > (r = scanf("&#37;i", &value)) != 1
I'd say you would want == 1 here.

I'd also put the loop in another function, and just call it twice with different parameters.

> printf("No room after reading values\n\n");
What's this supposed to mean?

4. Yeah its required for this assignment. Ah yeah that would make sense, thanks! So you would suggest writing a function to read in each array?

5. Oh and I'm supposed to do an error check, but was unsure how to do it. Its supposed to check to see if there is enough room in the array and check to see if a invalid character was entered

6. > So you would suggest writing a function to read in each array?
I believe I just did.

> Its supposed to check to see if there is enough room in the array and check to see if a invalid character was entered
The 'room' is the ptra < endptra test
The 'valid' is the == test

However, what you don't do at the moment is clean up the input stream if scanf() returns something other than 1

7. Ok i'll give that a shot right now, thanks Salem!

If my memory serves me correctly, I think I used ( in an older program)

while(getchar() != '\n');

to flush it out?

8. Code:
`while(((r = scanf("%i", &value)) != 1 && ptra < endptra)`
You seem to missing that extra '(' also.