Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Real1zm
Заблокирован
1

Проверка вводимых данных

20.09.2014, 08:56. Просмотров 551. Ответов 6
Метки нет (Все метки)

Вот часть программы
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
int main(void)
{
    int vop;
    setlocale(LC_ALL, "Russian");
    int mas1[20], mas2[20], mas3[20], outmas[100];
    int ke1, ke2, ke3;
    printf("Введите количество элементов 1-го множества:   ");
    scanf_s("%i", &ke1);
    for (int i = 0; i < ke1; i++)
    {
        printf("Введите ");
        printf("%i", i + 1);
        printf(" элемент:   ");
        scanf_s("%i", &mas1[i]);
    }
    printf("Введите количество элементов 2-го множества:   ");
    scanf_s("%i", &ke2);
    for (int i = 0; i < ke2; i++)
    {
        printf("Введите ");
        printf("%i", i + 1);
        printf(" элемент:   ");
        scanf_s("%i", &mas2[i]);
    }
    printf("Введите количество элементов 3-го множества:   ");
    scanf_s("%i", &ke3);
    for (int i = 0; i < ke3; i++)
    {
        printf("Введите ");
        printf("%i", i + 1);
        printf(" элемент:   ");
        scanf_s("%i", &mas3[i]);
    }
Помогите сделать проверку , нельзя чтобы в множестве встречались одинаковые числа. В таком случае должно выдавать сообщение "введите числа заново"

Спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2014, 08:56
Ответы с готовыми решениями:

Проверка вводимых данных.
предполагается, что функция будет проверять, что ввел пользователь, и, если он...

Проверка вводимых данных
Доброго времени суток, форумчане. Я столкнулся с такой проблемой: при введении...

Проверка вводимых данных
Как сделать так, чтобы при вводе символов в строку года поступления на экран...

Проверка вводимых данных
#include &lt;iostream&gt; using namespace std; int main() { double a,...

Проверка корректности вводимых данных
Есть программа на проверку високосного года. Преподаватель при проверке вводит...

6
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
20.09.2014, 09:05 2
проверяй что уже введено
типа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int tmp;
scanf_s("%i", &tmp);
bool btmp=false;
for(int j=0;j<i;j++)
 {
  if(tmp==mas1[j])
   {
    btmp=true;
    break;
  }
  
 }
if(!btmp)
 mas1[i]=tmp;
else
 printf("Введите заново");
0
Real1zm
Заблокирован
20.09.2014, 10:11  [ТС] 3
спасибо, только подскажите пожалуйста
теперь когда программа спрашивает "введите элемент 1" я ввожу число, нажимаю энтер и не происходит ничего
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
20.09.2014, 10:24 4
я же написал пример, клише так сказать
вот так должно работать
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
do{
printf("Введите количество элементов 1-го множества:   ");
    scanf_s("%i", &ke1);
 if(ke1>sizeof(mas1)/sizeof(int))
  printf("слишком большой размер, не больше %d",sizeof(mas1)/sizeof(int));
 
}while(ke1>sizeof(mas1)/sizeof(int));
 
 for (int i = 0; i < ke1; i++)
    {
     int tmp,btmp;  
     btmp=0;
      printf("Введите %d элемент: ",i+1);
      scanf_s("%i", &tmp);
    for(int j=0;j<i;j++)
    {
      if(tmp==mas1[j])
      {
       btmp=1;
       printf("число уже есть в %d позиции \n Введите заново:",j+1);
       break;
       }
     }
if(btmp==0)
 {
 mas1[i]=tmp;
 }
else
  {
   i--;
  }
}
разберешься или пояснить?
1
Real1zm
Заблокирован
20.09.2014, 11:43  [ТС] 5
спасибо большое! понял

Добавлено через 1 час 13 минут
еще раз вас побеспокою))
подскажите, как сделать так, чтоб если вводили не интовое число, выдавало ошибку?
потому что если сейчас ввести например 2,5 то программа зацикливается
0
ValeryS
Модератор
7372 / 5573 / 707
Регистрация: 14.02.2011
Сообщений: 18,944
20.09.2014, 11:51 6
Цитата Сообщение от Real1zm Посмотреть сообщение
2,5
это два числа 2 и 5
у дечятичных . т.е. 2.5
0
Real1zm
Заблокирован
20.09.2014, 11:54  [ТС] 7
ну не суть важно, я ввожу 2.5 и программа зацикливается
впринципе я примерно понял как можно проверять
if (scanf("%f",&v)!=1)
{
printf("Oshibka vvoda");
getch();
return 0;
}

но может вы подскажете что-то лучше?
0
20.09.2014, 11:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2014, 11:54

Посимвольная проверка вводимых данных
Доброго времени суток. Такая проблема: нужно запретить пользователю вводить...

Проверка на коректность вводимых данных
Есть такой код где данные вводятся целого типа( int x; cin &gt;&gt; x; ). Вопрос...

Проверка корректности вводимых данных
Здравствуйте, подскажите,пожалуйста, как прописать условия проверки. Мне...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru