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

Двумерный массив, рандомное заполнение

13.03.2016, 21:25. Просмотров 235. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста исправить ошибки в рандомном заполнение матрицы , так же я не очень понимаю как зациклить программу .Функцию для удаления я написала но зациклить все равно не получается


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
#include <iostream>
#include <clocale>
#include <cstdlib>
#include <ctime>
 
using namespace std;
//Для задания непрямоугольной матрицы
struct Line{
  int n;
  double *ar;
//  Line *matr;
};
 
 
 
 
//Функция ввода целого числа
istream& input(int&a) {
  while(!(cin>>a)){
    if(cin.eof()) break;
    cin.clear();
    cin.ignore();
  }
  return cin;
}
//Функция ввода вещественного числа
istream& input(double&a) {
  while(!(cin>>a)){
    if(cin.eof()) break;
    cin.clear();
    cin.ignore();
  }
  return cin;
}
//Ввод количества строк
int input() {
  int n;
  const char *pr="";
  do{
    cout<<pr;
    pr="oschibka vvedite chislo bolsche 0!!!";
    //cout<<"enter number of int:";
    input(n);
  } while(n<=0);
  return n;
}
//Ввод матрицы
int input(Line*&p)
{
cout<<"kolvo strok v matrice  :";
  int m=input();
  p=new Line[m];
 for(int i=0; i<m; ++i){
cout<<"kolvo elementov v stroke:";
    p[i].n=input();
cout<<"vvedite elementi :\n";
    p[i].ar=new double[p[i].n];
    for(int j=0; j<p[i].n; ++j) input(p[i].ar[j]);
  }
  return m;
}
 
 
void Free( int ** m, size_t n ) {     //удаление матрицы
    for ( size_t i = 0; i < n; ++i ) {
        delete [] m[i];
    }
    delete [] m;
 
 
 
 
 
void FillRandomNumbers(int **matrix, const size_t rows, const size_t columns)  //функция рандомного заполнения 
{
    srand(time(0));
 
    for (size_t row=0; row < rows; row++)
        for (size_t column=0; column < columns; column++)
            *a[row][column] = rand() % 100; 
}
 
 
 
int main() {
 
 do           
    {
 
  Line *a;             //Переменная для матрицы
  int m=input(a);      //Ввод матрицы, вернуть количество строк
  int *b = new int[m]; //Выделить память под вектор
  for(int k=0;k<m;k++) { //Цикл по строкам
    b[k]=a[k].n;         //Начальное значение элемента вектора для строки
    for(int i=0;i<a[k].n;i++) { //Цикл по элементам текущей строки
 
 int l=k+1;         //Номер следующей строки
      if (l==m) l=0;     //Последняя строка сравнивается с нулевой строкой
      for(int j=0;j<a[l].n;j++) { //Цикл по элементам следующей строки
        if (a[k].ar[i]==a[l].ar[j]) {
          b[k]--;
    FillRandomNumbers(*a, rows, columns);// заполнение случайными числами
          break;
 
 
 
    for (size_t row=0; row < rows; row++)//попытка зациклить программу 
        delete[] matrix[row];
    delete[] matrix;
        cout<<"Repeat y/n?";
        char c;cin.get(c);
    }while(c=='y');
}
        }
      }
    }
  }
  //Вывод содержимого матрицы
  cout<<endl<<"a=";
  for (int i=0;i<m;i++) {
    cout<<endl<<"(";
    for (int j=0;j<a[i].n;j++) {
      cout<<a[i].ar[j]<<" ";
    }
    cout<<")";
  }
  cout<<endl;
 
  //Вывод содержимого вектора
  cout<<endl<<"b=(";
  for (int i=0;i<m;i++) {
    cout<<b[i]<<" ";
  }
  cout<<")"<<endl;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2016, 21:25
Ответы с готовыми решениями:

Двумерный массив - рандомное заполнение
Как задать двумерный массив в котором значения элементов задаются случайным образом? на си++ ... и...

Двумерный массив, заполнение по спирали
помогите в написании Заполнить элементами таблицу, располагая их по спирали.

Двумерный массив через указатели и его заполнение
Привет, объясните, как создать двумерный массив через указатели и заполнить его с клавиатуры? Т.е....

Рандомное заполнение
Здравствуйте уважаемые жители форума. По ходу выполнения некоего задания столкнулся с таким...

Рандомное заполнение массива
Здравствуйте,никак не получается сделать так что бы массив заполнялся рандомными числами. Вот...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2016, 21:25

Выполнить рандомное заполнение матриц
Подскажите пожалуйста как можно в этом коде сделать рандомное заполнение матриц (для размерности...

Рандомное заполнение и разворот списка
Помогите, пожалуйста решить вот такую задачу. Создать односвязный список из случайных целых чисел,...

Рандомное заполнение массива без нулей
Как сделать заполнение массива без нулей? Я знаю, как оно делается именно, просто не знаю как...


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

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

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