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

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

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

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


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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2016, 21:25
Ответы с готовыми решениями:

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

Двумерный массив, заполнение спиралью
Вечер добрый. Нужна немного помощь по коду и хотя бы простое объяснение по нему же. Пытаюсь воткнуть ввод переменной &quot;n&quot; с...

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2016, 21:25
Помогаю со студенческими работами здесь

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

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

Рандомное заполнение строки
Хаюшки) Нужно рандомно заполнить string всё) есть string и его нужно заполнить случайным количеством и случайными символами тут...

Рандомное заполнение массива
Нужно заполнить двумерный динамический массив случайными числами, проблема в том что куда srand(time(0)) не засунь строки все равно...

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


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной. Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
Формулы поворота
Igor3D 10.03.2025
Добрый день Тема Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости". x' = x * cos(a) - y * sin(a) y' = y * cos(a) + x * sin(a) Как бы Вы их. . .
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view. string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет! Отправлено 19 февраля 2025 года в 17:20:21 UTC Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home. Мы официально. . .
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru