I'm just a noob/newbie in the C/programming world. I'll first post the code and then I'll describe my problem.

```
#include <stdio.h>
#include <string.h>

int
main ()
{
  char f[30], j[30] = "mount everest";
  int s,a=0;
  printf ("\n");
  printf ("2) Which is the tallest mountain in the world?\n");
  printf ("\n");
  printf ("Please type your answer below\n");
  scanf("%[a-z]s",f);
  s = strcmp (f, j);
  printf ("\n");

  if (s == 0)
    {
      printf ("Congratulations! You have recieved a point!\n");
      a++;
    }
  else
    {
      printf ("Sorry! Better luck next time!");
      a--;
    }

  return 0;
}

```

So when I try to type the answer as "mount everest", the output goes directly to my 'else'(**Sorry! Better luck next time!**) statement. Also, I want the program to only accept small letters(*as I've defined it a strict rule to be followed throughout the quiz*).

```
**OUTPUT** 

2) Which is the tallest mountain in the world?

Please type your answer below
mount everest

Sorry! Better luck next time!

```

But when I use (not)'!s' instead of 's' in my if condition, it fulfills the if condition and prints the message as '**Congratulations! You have recieved a point!**'. I really don't know what is going on? I had the same approach for my other 2 questions and they all worked perfectly without this '!' issue.

```
#include <stdio.h>
#include <string.h>

int
main ()
{
  char f[30], j[30] = "mount everest";
  int s,a=0;
  printf ("\n");
  printf ("2) Which is the tallest mountain in the world?\n");
  printf ("\n");
  printf ("Please type your answer below\n");
  scanf("%[a-z]s",f);
  s = strcmp (f, j);
  printf ("\n");

  if (!s == 0)
    {
      printf ("Congratulations! You have recieved a point!\n");
      a++;
    }
  else
    {
      printf ("Sorry! Better luck next time!");
      a--;
    }

  return 0;
}

```

```
**OUTPUT**

2) Which is the tallest mountain in the world?

Please type your answer below
mount everest

Congratulations! You have recieved a point!

```

So someone can please explain this to me of what is happening(*as I'm new so I kinda don't know how to understand debugging*) and what am I doing wrong here? Also, if you cannot understand from this section of the code, I'll post the whole code here but for now I thought it would be too overwhelming so if u want then pleasedo let me know! Thank you for taking the time to go through my problem. Any help is very much appreciated.

**EDIT**

I programmed the code again with the help of such useful comment from you guys/contributers(*thank u all for taking the time to help this newbie*) now I'll show you the revised/new code first:

```
#include <stdio.h>
#include <string.h>

int
main ()
{
  char f[30], j[30] = "mount everest";
  int s,a=0;
  printf ("\n");
  printf ("2) Which is the tallest mountain in the world?\n");
  printf ("\n");
  printf ("Please type your answer below\n");
  fgets(f,15,stdin);
  printf("%s\n",f);
  printf("%s\n",j);
  printf ("\n");
  s=strcmp(f,j);
  if (s==0)
    {
      printf ("Congratulations! You have recieved a point!\n");
      a++;
    }
  else
    {
      printf ("Sorry! Better luck next time!");
      a--;
    }

  return 0;
}

```

But now I'm again being thrown back at the else condition. Like this:

```
Output

2) Which is the tallest mountain in the world?

Please type your answer below
mount everest
mount everest

mount everest

Sorry! Better luck next time!

```

I know there is an issue with the 'if' condition but can't seem to figure out what it is. So if anyone can detect my error then I would be really glad. Once again thank you all for helping me.