Как определить, находится ли число между двумя другими числами в C? - PullRequest
0 голосов
/ 28 января 2012

как я могу определить, находится ли пользовательский ввод int между 2 числами?

Я пытался сделать это:

int x=3;
printf("Enter the size of the triangle: ");
scanf("%d", &size);
odd=size%2;

for(x=3;x<21;x++)
{
  if(x==size&&odd==1)
  {
     break;
  }
  else
  {
 printf("The size must be an odd number and be between\n3 and 21, inclusive, please try again\n\n");
     printf("Enter the size of the triangle: ");
     scanf("%d",&size);
     odd=size%2;
     x=3;
  } 
}  

Но единственный вход, который я могу использовать, это 3.

Ответы [ 4 ]

3 голосов
/ 28 января 2012

У вас уже есть все биты решения в коде:

if (size >= 3 && size <= 21) {
   // size is between 3 and 21 inclusive
} else {
   // size is less than 3 or more than 21
}

Если вы также хотите убедиться, что это странно, вы можете добавить условие:

if ((size >= 3) && (size <= 21) && (size % 2 == 1)) {
   // size is between 3 and 21 inclusive, and odd
} else {
   // size is less than 3 or more than 21 or even
}
1 голос
/ 28 января 2012

Если вам нужно постоянно спрашивать у пользователя номер, пока он не введет номер, который:

  • odd;и
  • от 3 до 21 включительно,

вы можете использовать что-то вроде:

printf ("Enter the size of the triangle: ");
scanf ("%d", &size);
while ((x < 3) || (x > 21) || (x % 2 == 0)) {
    printf ("The size must be an odd number and be between\n"
        "3 and 21, inclusive, please try again.\n\n");
    printf ("Enter the size of the triangle: ");
    scanf ("%d", &size);
}

Это, вероятно, самая простая форма.Он получает число, затем входит в цикл while до тех пор, пока он не станет действительным.

Вы можете преобразовать пару printf/scanf в отдельную функцию, но это, вероятно, не так важно в небольшом фрагменте, таком какэто.

0 голосов
/ 28 января 2012
printf("Enter the size of the triangle");
scanf("%d", &size);

if (3 <= size && size <= 21 && size % 2) {
    // size is between 3 and 21 (inclusive) and odd
}
0 голосов
/ 28 января 2012

Как насчет:

if(x >= 3 && x <= 21 && x%2) {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...