This was fun - missing.c:
void die(int err, char *msg) {
err? fprintf(stderr, "%s\n", msg), exit(1): 0;
}
int main(int argc, char *argv[]) {
int n, answer = 1, val;
die(argc != 2 || (n = atoi(argv[1])) < 2, "Usage: missing n");
for (; n > 1; n--) {
die(scanf("%d", &val) != 1, "Error reading input");
answer ^= val ^ n;
}
printf("%d\n", answer);
}