Using as much as your code as I could:
The conditional to remove the newline is just something I like to do and not required. Though if you do get rid of it make sure to change the for loop to length - 1.
#define MAXLINE 100
int error = 0;
printf(" Enter a positive integer: \n");
fgets(line, MAXLINE, stdin);
sscanf(line, "%d", &n);
length = strlen(line);
if ( line[length-1] == '\n' )
for (i = 0; i < length; ++i)
error = 1;
printf("\n Try again!");
printf("\n Looks like an integer to me. Thanks!\n");
} while (error);
Empty if statements are kinda pointless. If you aren't going to do anything when its true and are going to do something when its false you can use negation to simplify it.
Also once you have found out that their is a character in the stream there is no real point in checking the rest of it.