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

Как наложить ограничения на ввод данных? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти число последовательности, у которого количество одинаковых цифр максимально http://www.cyberforum.ru/cpp-beginners/thread80022.html
1. Найти число последовательности, у которого количество одинаковых цифр максимально.с использованием функций!?!
C++ удаление нулевых строк и столбцов помогите, плиз, написать функцию или просто код для main, которая удаляет нулевые строки и столбцы из матрицы nхn. матрица не динамическая плиз, очень срочно! знаю, как с динамическим массивом сделать, а с обычным нет((( http://www.cyberforum.ru/cpp-beginners/thread79998.html
Идеальные числа C++
Реашал задачу по нахождению идеальных чисе в заданном промежутке(то есть сумма сомножителей чисоа должна быть равна самому числу например 6=1+2+3 написал прогу но если задаю промежуток поиска выше 10000 компилятор висит #include<iostream.h> void perf(int); int total=0; void main() { for(int k=4;k<=1000000;k++)//передача числа в функцию по порядку {
C++ функции языка С
мне нужно написать программу построения таблицы значений функции на промежутке , количество строк в таблице n, промежуток и количество строк вводится пльзователем. Функция имеет вид y=x+1. заранее спасибо!
C++ Строки и указатели........ http://www.cyberforum.ru/cpp-beginners/thread79978.html
Помогите написать прогу с помощью которой - вводится имя,фамилия,отчество а вывоится фамилия и инициалы то есть - Пушкин Александр Сергеевич - Пушкин А.С Visual studio c++ - библиотека stdio
C++ наследование #include <iostream> using namespace std; int SZ=10; class Base{ protected: char familia; char inichiali; char mesto_raboti; char doljnost; public: подробнее

Показать сообщение отдельно
Nyuta
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
26.12.2009, 11:22  [ТС]     Как наложить ограничения на ввод данных?
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
#include <iostream.h>
#include <time.h>
#include <Windows.h>
#include <conio.h>
 
#define N 3
#define R 1
#define U 0
 
using namespace std;
 
int crMatrix();
void strZeroDel(int **a, int &n, int p);
void stZeroDel(int **a, int n, int &p);
int getIntegerFrom2to9();
 
//----------------------------------------------------
 
int main()
{       int z;
 
        HANDLE hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hConsoleHandle, 15 | 0);
 
 
        while (z!=2) {clrscr();
                cout<<endl<<"MENU:"<<endl<<endl;
                cout<<"1. creation of a matrix and replacement of units"<<endl;
                cout<<"2. exit"<<endl<<endl;
                cout<<"choice point menu"<<endl<<endl;
 
        while(!scanf("%d", &z))
        printf("please, enter 1 or 2: "), fflush(stdin);
 
        cout<<endl;
 
        switch (z){
                case 1:{crMatrix();break;
                }
                case 2:{exit(1);
                }
            default:{cout<<endl<<"false choice point menu... try again";
             getch();}
                }
        }
}
 
//----------------------------------------------------
 
void strZeroDel(int **a, int &n, int p)
{       int i,j,k,t,m;
 
        i=0;
        while(i<n){
        k=0;
                for (j=0;j<p;j++)
                        if (a[i][j]==0) k++ ;
                        if (k==p){
                                for (t=0;t<p;t++) {
                                        for (m=i;m<n-1;m++){
                                                a[m][t]=a[m+1][t];
                                        }
                                }n--;
                        }else i++;
                }
}
 
//----------------------------------------------------
 
void stZeroDel(int **a, int n, int &p)
{       int i,j,k,t,m;
 
        j=0;
        while(j<p){
        k=0;
                for (i=0;i<n;i++)
                        if (a[i][j]==0) k++ ;
                        if (k==n){
                                for (t=0;t<n;t++){
                                        for (m=j;m<p-1;m++){
                                                a[m][t]=a[m][t+1];
                                        }
                                } p--;
                        }else j++;
        }
}
 
//----------------------------------------------------
 
int getIntegerFrom2to9()
{       int from2to9;
        while (!scanf("%d", &from2to9)) {
                cout<<endl;
                printf("please, enter number - not symbol: "), fflush(stdin);
        }
 
        cout<<endl;
        return from2to9;
}
 
//----------------------------------------------------
 
int crMatrix()
{       int arr[N][N];
        int binaryMatrix[N][N];
        bool repeat;
        int row_find;
        int col_find;
        int yes;
        char a;
 
        srand (unsigned (time(0)));
 
        HANDLE hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hConsoleHandle, 15 | 0);
 
        cout<<"would you like to create the matrix in a random way (press any number) or by yourself(press '7')?"<<endl<<endl;
        while(!scanf("%d", &yes))
        printf("please, enter number - not symbol: "), fflush(stdin);
        cout<<endl;
 
        if (yes==7){cout<<"put  elements of the matrix: "<<endl;    //ââîä Г¬Г*òðèöû ïîëüçîâГ*òåëåì
                for(int col=0;col<N;col++)
                        for(int row=0;row<N;row++){
                                cout<<"["<<col<<"]["<<row<<"]= ";
                                arr[col][row]= getIntegerFrom2to9();
                        } cout<<endl;
       }
       else{cout<<"your matrix is: "<<endl<<endl;
                for(int col=0;col<N;col++) {                     //Г§Г*Г¤Г*Г*ГЁГҐ Г¬Г*òðèöû ГЈГҐГ*ГҐГ°Г*òîðîì ñëó÷Г*Г*ûõ Г·ГЁГ±ГҐГ«
                        for(int row=0;row<N;row++) {
                                arr[col][row]=rand()%9+2;
                                cout<<" "<<arr[col][row];
                        }cout<<endl;
                }
       }
 
       for(int i=0;i<N;i++) {
                for(int j=0;j<N;j++) {
                        binaryMatrix[i][j]=arr[i][j];
                }
       }
 
       for(int row=0;row<N;row++) {               //Г§Г*ïîëГ*ГҐГ*ГЁГҐ ГЎГЁГ*Г*Г°Г*îé Г¬Г*òðèöû
                for(int col=0;col<N;col++) {
                        if(binaryMatrix[col][row]==0||binaryMatrix[col][row]==1) continue;
 
                        repeat=false;
                        row_find=row;
                        col_find=col;
 
                        while(1) {
                                ++col_find;
                                if(col_find==N) {
                                        ++row_find;
                                        if(row_find==N)
                                                break;
                                        col_find=0;
                                }
                                if (arr[col][row]==arr[col_find][row_find]) {
                                        repeat=true;
                                        binaryMatrix[col_find][row_find]=1;
                                }
 
                        }
                        if(repeat) {
                                binaryMatrix[col][row]=1;
                        } else {
                                binaryMatrix[col][row]=0;
                        }
                }
        }
 
 
        cout<<endl<<"now repeated units in your matrix are selected by colour:"<<endl<<endl;
        for(int col=0;col<N;col++) {
                for(int row=0;row<N;row++) {
                        if(binaryMatrix[col][row]==1) {
                                SetConsoleTextAttribute(hConsoleHandle, 150 | 15);  //öâåòГ*: 150 - ГЎГЅГЄГЈГ°Г*ГіГ*Г¤, 15 - ГІГҐГЄГ±ГІ
                        }cout<<" "<<arr[col][row];
                        if(binaryMatrix[col][row]==1) {
                                SetConsoleTextAttribute(hConsoleHandle, 15 | 0);
                        }
                }cout<<endl;
        }
 
        cout<<endl<<"a new matrix: repeated are replaced by 1, unrepeated - by 0:"<<endl<<endl;
        for(int col=0;col<N;col++) {
                for(int row=0;row<N;row++) {
                        cout<<" "<<binaryMatrix[col][row];
                }cout<<endl;
        }cout<<endl<<endl;
 
        int **nonZeroMatrix=new int *[N];       //âûäåëåГ*ГЁГҐ ГЇГ*ìÿòè ïîä Г¬Г*òðèöó
                for (int i=0;i<N;i++){
                        nonZeroMatrix[i]=new int[N];
                }
 
        for(int row=0;row<N;row++) {
                for(int col=0;col<N;col++){
                      nonZeroMatrix[col][row]  = binaryMatrix[col][row];
                }
        }
        int n = N;
        int p = N;
        strZeroDel(nonZeroMatrix,n, p);
        stZeroDel(nonZeroMatrix, n, p);
 
        cout<<"a matrix without columns and rows which contain only zero:"<<endl<<endl;
                for(int col=0;col<n;col++)  {
                        for(int row=0;row<p;row++)  {
                                cout<<" "<<nonZeroMatrix[col][row];
                        }cout<<endl;
                }
 
        for (int i=0;i<N;i++){ delete[] nonZeroMatrix[i];       //îñâîáîæäåГ*ГЁГҐ ГЇГ*ìÿòè
        }
        delete[] nonZeroMatrix;
 
        cout<<endl;
        system("PAUSE");
        return 0;
}
вот кодина.
проблема в том, что не могу наложить эти ограничения (что в матрице нет 0 и 1), когда пользователь вводит матрицу сам. те ограничение на то, что только цифры есть, а вот на 0 и 1 нет((((((

те надо здесь наложить

C++
1
2
3
4
5
6
 if (yes==7){cout<<"put  elements of the matrix: "<<endl;    //ввод матрицы пользователем
                for(int col=0;col<N;col++)
                        for(int row=0;row<N;row++){
                                cout<<"["<<col<<"]["<<row<<"]= ";
                                arr[col][row]= getIntegerFrom2to9();
                        } cout<<endl;
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru