The relevant part of my code:
What it should be doing is first prompting the user,Code:#include <stdio.h> int getSize(void); void errorReport(int size); int main(int argc, char *argv[]) { int size = 0; size = getSize(); printf("In main, size = %d\n", size); return 0; } int getSize(void) { printf("Enter the grid size, an odd number between 3 and 15: "); int size = 0; scanf("%d", &size); printf("In getSize 1, size = %d\n", size); errorReport(size); printf("In getSize 2, size = %d\n", size); return size; } void errorReport(int size) { if ( (size < 3) || (size > 15) || ((size % 2) == 0) ) { getSize(); } }
And if the user enters an invalid number, it'll just ask again. Once the user enters a valid number it should then assign it to the variable size and pass it back into the main function.Enter the grid size, an odd number between 3 and 15:
However, here is some input and the output when I run the code:
Notice that it's keeping the incorrect values I entered previously and so the value of size being passed into the main function is the first value I entered.Enter the grid size, an odd number between 3 and 15: 2
In getSize 1, size = 2
Enter the grid size, an odd number between 3 and 15: 4
In getSize 1, size = 4
Enter the grid size, an odd number between 3 and 15: 100
In getSize 1, size = 100
Enter the grid size, an odd number between 3 and 15: 5
In getSize 1, size = 5
In getSize 2, size = 5
In getSize 2, size = 100
In getSize 2, size = 4
In getSize 2, size = 2
In main, size = 2
I just don't understand why it's doing this...