Форум программистов, компьютерный форум CyberForum.ru

Цикл на проверку введённых данных - C++

Восстановить пароль Регистрация
 
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
01.04.2013, 02:03     Цикл на проверку введённых данных #1
Здравствуйте. Мне нужно проверить вводимые данные в двумерный массив.
Всё бы хорошо, если бы на последнюю строчку ввода при правильном вводе программа бы не жаловалась.
Пример: ввожу всё время 1 или 0, а на последней строке массива программа всё ровно пишет
Please enter only 1 (full) or 0 (empty):

Вот собственно сам код
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
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;
 
int main()
{
    time_t t;
    srand((unsigned) time(&t));
 
    
    int nrow,ncol;
    int i,j;
 
    
    cout << "Please enter table size." << endl;
    cout << "Enter number of columns: "; 
    cin >> nrow;
    
    cout << "Enter number of lines: ";
    cin >> ncol;
    
    cout << "To fill an array of empty and full cells were injected 1 (full) or 0 (empty)." << endl;
    cout << "The array is filled in order from the first row." << endl;
    
    
    int **arr=new int*[nrow];
    
    for(i=0;i<nrow;i++)
    {
                       arr[i]=new int[ncol];
    }
    for(i=0;i<nrow;i++)
    {
                       for(j=0;j<ncol;j++)
                       {
                                          cin >> arr[i][j];
                                          
                                          if(i!=0 && i!=1)
                                          {
                                               if(j!=0 && j!=1)
                                               {
                                                      cout << "Please enter only 1 (full) or 0 (empty): ";
                                                      cin >> arr[i][j];
                                               }
                                          }
                                          
                       }
 
    }
    for(int k = 0; k < i ; k++)
    {
            for(int l = 0; l < j; l++)
            {
                    cout << setw(4)<<arr[k][l];
            }
                cout << endl;
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 02:03     Цикл на проверку введённых данных
Посмотрите здесь:

используя массив of Structure - на основе введённых данных создать таблицу C++
C++ Поиск по условию в уже введённых данных
Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть вычисления и вывод данных о фигуре, проверку существования треугольника. C++
Проблемы с проверкой введённых данных C++
C++ Проверить, можно ли построить треугольник из отрезков с длинами x, y, z. Предусмотреть проверку вводимых данных на отрицательность
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
01.04.2013, 03:02     Цикл на проверку введённых данных #2
mster-doc, а почему вы проверяете номера элементов, а не сами элементы массива? не помешало бы само задание.
mster-doc
 Аватар для mster-doc
14 / 14 / 4
Регистрация: 10.11.2012
Сообщений: 239
01.04.2013, 03:41  [ТС]     Цикл на проверку введённых данных #3
http://http://pixs.ru/showimage/Bezi...63_7575825.jpg

Я думал сначала сделать просто массив который заполнить 1 и 0.
А потом сделать рандомное заполнение этого массива.
А потом Чтобы программа высчитывала наибольшую фигуру массива.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2013, 03:43     Цикл на проверку введённых данных #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(i = 0; i < nrow;i++)
{
        for(j = 0; j < ncol; j++)
        {
            cin >> arr[i][j];
                                          
            if(arr[i][j] != 0 && arr[i][j]!= 1)
            {
                cout << "Please enter only 1 (full) or 0 (empty): ";
                --j;
            }
        }
}
Yandex
Объявления
01.04.2013, 03:43     Цикл на проверку введённых данных
Ответ Создать тему
Опции темы

Текущее время: 01:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru