Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
3 / 3 / 1
Регистрация: 29.05.2014
Сообщений: 148
1

Ввод в массив цифр от 1 до 9

28.04.2015, 09:20. Показов 843. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как сделать проверку, что бы число было в пределах 1-9?

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

C
1
2
3
4
5
6
7
8
9
10
11
int move;
 
printf ("Please enter move.(1-9) \n");
                    scanf_s ("%u",&move);
                    if ((move < 49) || (move > 58) || (cell[move - 1] != '-'))
                        cell[move - 1] = 't';                                           
                    else
                    {
                        printf("Please enter corect move.(1-9) \n");
                        scanf_s("%u",&move);
                    }
(массив чаров)
нужно занести в массив с 9 элементов символ. но номер ячейку куда заносить нужно ввести с клавиатуры (нужно предвидеть, что могут вводится и строки, которые, в таком случае нужно их отбросить и еще раз считать новое значение ).
помогите, а то задание как бы не сложное, но не получается.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2015, 09:20
Ответы с готовыми решениями:

Ограничение на ввод символов (разрешить ввод только цифр)
Всем доброго времени суток! Я начал изучать С++ и у меня возник такой вопрос: Как ограничить...

Ввод в CEdit только символов 'A'B'C'D'E'F' и цифр от 0 до 9 (ввод в HEX)
собственно такой вопросик. как сделать так, что бы программа ругалась на некорректный ввод...

Ввод в TextBox только цифр и цифр больше
Как сделать, чтобы выполнялась проверка введенного значения в TextBox (можно только цифры и только...

Ввод n-значного числа, вывод цифр, из которых оно состоит и вывод суммы его цифр
Написать программу, осуществляющую ввод n-значного числа, вывод цифр, из которых оно состоит и...

5
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
28.04.2015, 10:06 2
Как вариант:
C
1
2
3
4
5
do
{
  printf("Please enter corect move.(1-9) \n");
  scanf_s("%u",&move);
} while ((move > 9) || (move < 1));
0
3 / 3 / 1
Регистрация: 29.05.2014
Сообщений: 148
28.04.2015, 10:54  [ТС] 3
HighPredator, проблема возникает когда ввожу литерал. начинает в цикле выводит
C
1
"Please enter corect move.(1-9)
и никак не остановить его. как быть?
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
28.04.2015, 11:04 4
МАРКИЗОЧКА, читать строку и делать валидацию.
1
3 / 3 / 1
Регистрация: 29.05.2014
Сообщений: 148
28.04.2015, 11:08  [ТС] 5
делать валидацию.
а как это делать?
0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
30.04.2015, 11:18 6
Вот вам примерчик. После цикла в мейне переменная move будет иметь одно из допустимых значений.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int IsInputStringValid(const char* const str)
{
  int isInputValid = 1;
  int val = 0;
 
  do
  {
    if (str == NULL)
    {
      isInputValid = 0;
      break;
    }
 
    if (strlen(str) > 1)
    {
      isInputValid = 0;
      break;
    }
 
    if (sscanf(str, "%d", &val) == 1)
    {
      if ((val > 9) || (val < 1))
      {
        isInputValid = 0;
        break;
      }
    }
    else
    {
      isInputValid = 0;
      break;
    }
 
  }
  while (0);
 
  return isInputValid;
}
 
int main(void)
{
  char str[256];
 
  int invalidInput = 0;
  int move = 0;
 
  do
  {
    printf("Please enter corect move.(1-9) \n");
    gets(str);
 
    if (IsInputStringValid(str))
    {
      invalidInput = 0;
      sscanf(str, "%d", &move);
    }
    else
    {
      invalidInput = 1;
      printf("Error!\n");
    }
  }
  while (invalidInput);
 
  return 0;
}
0
30.04.2015, 11:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2015, 11:18
Помогаю со студенческими работами здесь

Ввод в поле TextBox :цифр,одной запятой и трех цифр после запятой
Добрый день. На форме размещен TextBox в который разрешен ввод :цифр ,запятая. У меня вопрос как...

Дан массив из цифр. Составить таблицу серий из цифр, идущих подряд
Есть массив(из другой части программы генерируется), состоящий из цифр. Например:...

Сформировать массив десятичных цифр числа А. Элементы массива цифр сдвинуть циклически влево на 1 позицию
дано целое десятичное число А. Сформировать массив десятичных цифр числа А. Элементы массива цифр...

Ввод цифр
как сделать возможность ввести в поле input только либо одну 1 либо один 0 вот есть пример ввода...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru