двумерный массив заполняется рандомными(ну или самостоятельно) числами от 1 до размера двумерного массива одномерный массив заполняется числами всеми числами от 1 до размера двумерного массива задача: сравнить двумерный и одномерный массивы если в двумерном массиве не встречается числа из одномерного,то строку с таким номером следует удалить (или отметить) если число встречается только в строке с соответствующим номером, то такую строку так же следует удалить (или отметить) в общем-то это поиск допустимых и не допустимых значений конечного автомата,реализованного таким способом
| Код | #include <iostream> #include <fstream> #include <iomanip> #include <stdlib.h> using namespace std; int main() { ofstream F; // Открытие файла! F.open("C:\\fkap\\test.txt",ios::out); if (F) { int razm; cout<<"\n razm="; cin>>razm; int **strok = new int* [razm]; // тут говорю компилятору сколько строк массива for (int i=0; i<razm; ++i) strok[i] = new int [razm]; //тут сколько чисел в каждой строке for (int i=0; i<razm; ++i) for (int j=0; j<razm; ++j) strok[i][j]=2+ rand ()%razm; //заполнение случайными числами от 0 до 6 for (int i=0; i<razm; ++i) { for (int j=0; j<razm; ++j) cout<<setw(2)<<strok[i][j]; //вывод на экран cout<<endl; } for (int i=0; i<razm; ++i) { for (int j=0; j<razm; ++j) F<<setw(2)<<strok[i][j]; //вывод в файл F<<endl; } { int i,j; int t; int f=1; int* m; m=new int[razm]; int* p=&m[0]; for(t=0;t < razm;t++) { *p++=f; f=f+1; } for(--p,t=0;t < razm;t++) cout << *p-- << '\t'; cout << endl; delete [] m; } int i,j; int t; int f=1; int* m; int* p=&m[0]; { for (int j=0; j<razm; ++j) { for (i=0; i<razm;i++) { for (t=0; t<razm; t++) if (*strok[i]=!p[t]) cout<< *p--<<'\t'; cout<<endl; F<<setw(2)<<*strok[i]; F<<endl; } } } } else cout<<" файл не существует"<<endl; system("pause"); return 0; }
|
вот в принципе что написал,но не могу дальше ни в какую,заранее спасибо |