В решении, если еще, всякий раз, когда я ставлю правильный номер int вместо печати Исправить его печать неверна - PullRequest
0 голосов
/ 04 ноября 2018

Всякий раз, когда я ставлю правильный номер int вместо печати, исправьте его неверную печать.

int main(void)
{
  int number = 042646;
  int pass;
  printf("Enter the PIN.\n");
  scanf("%d", &pass);/*enter code here*/
   if (pass == number)
    {
      printf("Correct\n");
    }
  else
    {
      printf("Invalid\n");
    }
    }

1 Ответ

0 голосов
/ 04 ноября 2018

В «С» число, которому предшествует 0, интерпретируется как восьмеричное число. Вот простой код, который поможет вам увидеть проблему:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
  int number = 42646;
  int number_octal = 042646;
  int pass = 0;

  printf("Enter the PIN.\n");
  scanf("%d", &pass);/*enter code here*/

  /* Debug */
  printf("Pass: %d\n", pass);
  printf("Number: %d\n", number);
  printf("number_octal: %d\n", number_octal);

  if (pass == number)
  {
    printf("Correct\n");
  }
  else
  {
    printf("Invalid\n");
  }

  return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...