0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
1

Параллельное программирование. Замена кириллицы латиницей

19.09.2016, 00:41. Показов 2772. Ответов 25
Метки нет (Все метки)

Требуется написать программу, сначала последовательно, затем с использованием технологии OpenMP, которая реализует следующие действия: фрагмент текста поместить в двумерный массив, русские буквы заменить на латиницу.
При этом вычислить максимальное, минимальное и среднее время выполнения программы.
Провести анализ при различных вариантах распараллеливания (по строкам, столбцам и блокам) и с различными значениями параметра schedule.

P.S.
Поясняю насчет заполнения матрицы текстом - я использую следующий оператор:
C++
1
arr[i][j] = 'А' + rand()%31;
Заполнение происходит по принципу "один элемент матрицы - один символ."
Хотелось бы узнать, как можно заполнить ее из файла.
Ну и подскажите способ, как можно заменить алфавит, не прописывая каждый символ. Я думаю, такой вариант существует.
С последовательным способом решения разберусь, если подскажете вышесказанное, а вот с параллельным не дружу вообще
Выручайте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2016, 00:41
Ответы с готовыми решениями:

Замена букв в предложении. Не работает замена кириллицы
Суть программы заменить все определенные буквы в предложении на другую. Собственно, вот код....

Параллельное программирование
У меня есть задание: Коллективные операции. Работа имитирует реальный поиск в параллельной базе...

Параллельное программирование в С++
Здравствуйте! я новичок в параллельном программировании. Помогите пожалуйста с задачкой!! Есть одна...

Параллельное программирование
Как составить параллельную программу вычисления среднего арифметического элементов вектора?

25
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
19.09.2016, 01:06 2
Цитата Сообщение от Noob1875 Посмотреть сообщение
русские буквы заменить на латиницу
Транслит?
Цитата Сообщение от Noob1875 Посмотреть сообщение
Я думаю, такой вариант существует.
Зависит от того, что на что конкретно ты хочешь менять.
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
19.09.2016, 01:12  [ТС] 3
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Транслит?

Зависит от того, что на что конкретно ты хочешь менять.
Да, обычный транслит
Ф = F
Ж = Zh
Ш = Sh
...
и так далее

По-моему, где-то видел похожий пример, где меняли раскладку клавиатуры. Там все буквы были прописаны в одну строку.
Возможно ли тут так?
0
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
19.09.2016, 09:04 4
Noob1875, в общих словах - нет.
У тебя каждой русской букве соответствует разное число латинских букв. Так что нужно тебе написать некоторое подобие словаря (либо map<string, string>, либо массив русских символов с массивом латинских строк...)
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
22.09.2016, 20:11  [ТС] 5
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Noob1875, в общих словах - нет.
У тебя каждой русской букве соответствует разное число латинских букв. Так что нужно тебе написать некоторое подобие словаря (либо map<string, string>, либо массив русских символов с массивом латинских строк...)
Немного подумал, сделал со словарем.

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
#include <iostream>
#include "windows.h"
#include <omp.h>
#include <conio.h>
#include <cctype>
#include <ctime>
#include <fstream>
#include <string>
 
 
using namespace std;
int main() {
    
setlocale (LC_ALL, "Russian");
const int n = 5;
    
    string arr[n][n];
    int i, j;
 
    srand(time(NULL));
//Рандомное заполнение матрицы кириллицей
    for(i = 0; i < n; ++i)
    {
        for(j = 0; j < n; ++j)
        {
            arr[i][j] = 'а' + rand()%32;
        }
    }
 
     // словарь
       string rus[6][6] = {{"а", "б", "в", "г" ,"д" , "е"}, {"ё", "ж", "з", "и" ,"й" , "к"}, {"л","м","н","о","п","р",}, {"с","т","у","ф","х","ц",}, {"ч","ш","щ","ъ","ы","ь",}, {"э","ю","я",}};
       string eng[6][6] = {{"a", "b", "v", "g" ,"d" , "е"}, {"yo", "zh", "z", "i" ,"iy" , "k"}, {"l","m","n","o","p","r",}, {"s","t","u","f","h","ts",}, {"ch","sh","sch","``","y","`",}, {"eh","yu","ya",}};
    
cout<<"Old matrix:"<<endl;
//Вывод исходной матрицы:
       for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<arr[i][j]<<"\t";
        }   cout<<"\n";
       }
      
// замена
       string **res = new string*[];
       for (int i = 0; i < n; i++)
           res[i] = new string [n];
 
       for (int i = 0; i < n; i++)
        {
           for (int j = 0; j < n; j++)
           {
               bool check = false;
               int p = 0, q = 0;
               while (!check)
               {
                   if (arr[i][j] == rus[p][q])
                   {
                       res[i][j] = eng[p][q];
                       check = true;
                   }
                   else
                   {
                       if (q < 6)
                           q++;
                       else
                       {
                           q = 0;
                           p++;
                       }
                   }
               }
 
           }
        }
 
 
//Вывод новой матрицы:
cout<<"New matrix:"<<endl;
       for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<res[i][j]<<"\t";
        }   cout<<"\n";
       }
 
       _getch();
 
       
 
}
Корявенько, конечно, но работает.
Теперь бы разобраться с распараллеливанием..
0
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
22.09.2016, 22:43 6
Цитата Сообщение от Noob1875 Посмотреть сообщение
Теперь бы разобраться с распараллеливанием..
Noob1875, достаточно взять твой самый внешний цикл "for (int i = 0; i < n; i++)" и дописать одну единственную строчку на OpenMP, которая его распараллелит.
Уж как включить OpenMP и как распараллелить один единственный цикл for ты сможешь найти самостоятельно. =)
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
28.09.2016, 20:06  [ТС] 7
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Noob1875, в общих словах - нет.
У тебя каждой русской букве соответствует разное число латинских букв. Так что нужно тебе написать некоторое подобие словаря (либо map<string, string>, либо массив русских символов с массивом латинских строк...)
Подскажи, как переделать строки в массивы.
У меня сейчас через string, а нужно через char переобъявить. Не совсем догоняю, как.
Проблема двойных букв будет решаться, когда задам три английских массива. И в результирующую матрицу буду просто складывать значения из него, у обычных букв понятно, второй и третий элемент - пробелы, Ш представлю, как s+h и т.д. Со словарем разберусь, а вот как в коде грамотно поменять string, не знаю(
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
01.10.2016, 20:33  [ТС] 8
Жалуется на пробелы в словаре, а если это проигнорить, не записывает матрицы в файлы. Что не так?

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
#include <iostream>
#include "windows.h"
#include <omp.h>
#include <conio.h>
#include <cctype>
#include <ctime>
#include <fstream>
#include <string>
 
 
using namespace std;
int main() {
    
setlocale (LC_ALL, "Russian");
const int n = 10;
    
    char arr[n][n];
    int i, j;
 
    srand(time(NULL));
//Рандомное заполнение матрицы кириллицей
    for(i = 0; i < n; ++i)
    {
        for(j = 0; j < n; ++j)
        {
            arr[i][j] = 'а' + rand()%32;
        }
    }
 
     // словарь
       char rus[6][6] = {{'а', 'б', 'в', 'г' ,'д' , 'е'}, {'ё', 'ж', 'з', 'и' ,'й' , 'к'}, {'л','м','н','о','п','р',}, {'с','т','у','ф','х','ц',}, {'ч','ш','щ','ъ','ы','ь',}, {'э','ю','я',}};
       char eng1[6][6] = {{'a', 'b', 'v', 'g' ,'d' , 'y'}, {'y', 'z', 'z', 'i' ,'i' , 'k'}, {'l','m','n','o','p','r',}, {'s','t','u','f','h','t'}, {'c','s','s','/','y','\',}, {'e','y','y',}};
       char eng2[6][6] = {{' ', ' ', ' ', ' ' ,' ' , 'е'}, {'o', 'h', ' ', ' ' ,'y' , ' '}, {' ',' ',' ','o',' ',' ',}, {' ',' ',' ',' ',' ','s'}, {'h','h','c',' ',' ',' ',}, {'h','u','a',}};
       char eng3[6][6] = {{' ', ' ', ' ', ' ' ,' ' , ' '}, {' ', ' ', ' ', ' ' ,' ' , ' '}, {' ',' ',' ',' ',' ',' ',}, {' ',' ',' ',' ',' ',' '}, {' ',' ','h',' ',' ',' ',}, {' ',' ',' ',}};
    
cout<<"Old matrix:"<<endl;
//Вывод исходной матрицы:
       for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<arr[i][j]<<"\t";
        }   cout<<"\n";
       }
      
// замена
       char **res = new char*[];
       for (int i = 0; i < n; i++)
           res[i] = new char [n];
 
       for (int i = 0; i < n; i++)
        {
           for (int j = 0; j < n; j++)
           {
               bool check = false;
               int p = 0, q = 0;
               while (!check)
               {
                   if (arr[i][j] == rus[p][q])
                   {
                       res[i][j] = eng1[p][q]+eng2[p][q]+eng3[p][q];
                       check = true;
                   }
                   else
                   {
                       if (q < 6)
                           q++;
                       else
                       {
                           q = 0;
                           p++;
                       }
                   }
               }
 
           }
        }
 
 
       //Вывод новой матрицы:
cout<<"New matrix:"<<endl;
       for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<res[i][j]<<"\t";
        }   cout<<"\n";
       }  
 
 
// запись исходной матрицы в файл
 
       ofstream fout("source.txt"); 
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++)
            {
                fout <<arr[i][j]<< " "; 
            }
                fout<<"\n";
                        }
 
 
 
// запись конечной матрицы в файл
 
       ofstream fout("result.txt"); 
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++)
            {
                fout <<res[i][j]<< " "; 
            }
                fout<<"\n";
                        }
*/
    _getch();
    return 0;
}
0
10 / 10 / 5
Регистрация: 28.09.2015
Сообщений: 139
01.10.2016, 20:43 9
Noob1875, я тут мимо проходил...
C++
1
{'c','s','s','/','y','\\',},
32 строку исправь
и на 110 */ убери
1
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
01.10.2016, 20:45  [ТС] 10
32 строка - это только часть проблемы.
Разобраться бы с выводом в файлы..

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
#include <iostream>
#include "windows.h"
#include <omp.h>
#include <conio.h>
#include <cctype>
#include <ctime>
#include <fstream>
#include <string>
 
 
using namespace std;
int main() {
    
setlocale (LC_ALL, "Russian");
const int n = 10;
    
    char arr[n][n];
    int i, j;
 
    srand(time(NULL));
//Рандомное заполнение матрицы кириллицей
    for(i = 0; i < n; ++i)
    {
        for(j = 0; j < n; ++j)
        {
            arr[i][j] = 'а' + rand()%32;
        }
    }
 
     // словарь
       char rus[6][6] = {{'а', 'б', 'в', 'г' ,'д' , 'е'}, {'ё', 'ж', 'з', 'и' ,'й' , 'к'}, {'л','м','н','о','п','р',}, {'с','т','у','ф','х','ц',}, {'ч','ш','щ','ъ','ы','ь',}, {'э','ю','я',}};
       char eng1[6][6] = {{'a', 'b', 'v', 'g' ,'d' , 'y'}, {'y', 'z', 'z', 'i' ,'i' , 'k'}, {'l','m','n','o','p','r',}, {'s','t','u','f','h','t'}, {'c','s','s','/','y','\\',}, {'e','y','y',}};
       char eng2[6][6] = {{' ', ' ', ' ', ' ' ,' ' , 'е'}, {'o', 'h', ' ', ' ' ,'y' , ' '}, {' ',' ',' ','o',' ',' ',}, {' ',' ',' ',' ',' ','s'}, {'h','h','c',' ',' ',' ',}, {'h','u','a',}};
       char eng3[6][6] = {{' ', ' ', ' ', ' ' ,' ' , ' '}, {' ', ' ', ' ', ' ' ,' ' , ' '}, {' ',' ',' ',' ',' ',' ',}, {' ',' ',' ',' ',' ',' '}, {' ',' ','h',' ',' ',' ',}, {' ',' ',' ',}};
    
cout<<"Old matrix:"<<endl;
//Вывод исходной матрицы:
       for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<arr[i][j]<<"\t";
        }   cout<<"\n";
       }
      
// замена
       char **res = new char*[];
       for (int i = 0; i < n; i++)
           res[i] = new char [n];
 
       for (int i = 0; i < n; i++)
        {
           for (int j = 0; j < n; j++)
           {
               bool check = false;
               int p = 0, q = 0;
               while (!check)
               {
                   if (arr[i][j] == rus[p][q])
                   {
                       res[i][j] = eng1[p][q]+eng2[p][q]+eng3[p][q];
                       check = true;
                   }
                   else
                   {
                       if (q < 6)
                           q++;
                       else
                       {
                           q = 0;
                           p++;
                       }
                   }
               }
 
           }
        }
 
 
       //Вывод новой матрицы:
cout<<"New matrix:"<<endl;
       for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<res[i][j]<<"\t";
        }   cout<<"\n";
       }  
 
 
// запись исходной матрицы в файл
 
       ofstream fout("source.txt"); 
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++)
            {
                fout <<arr[i][j]<< " "; 
            }
                fout<<"\n";
                        }
 
 
 
// запись конечной матрицы в файл
 
       ofstream fout("result.txt"); 
    for (int i=0;i<n;i++){
        for (int j=0;j<n;j++)
            {
                fout <<res[i][j]<< " "; 
            }
                fout<<"\n";
                        }
 
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
10.10.2016, 21:44  [ТС] 11
Успех! У меня есть рабочий код.
Но проблема в том, что он работает только при n<=500.
Объясните, пожалуйста, что нужно поменять, чтобы он считал и более крупные матрицы? В идеале 5000*5000

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
#include <iostream>
#include "windows.h"
//#include <omp.h>
// #include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <cctype>
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <string>
#include "time.h"
 
using namespace std;
int main() {
    
setlocale (LC_ALL, "Russian");
const int n = 500;
 double start_time, end_time, tick; 
 start_time = omp_get_wtime(); 
 
 
 
    
    char arr[n][n];
    int i, j;
 
    srand(time(NULL));
//Рандомное заполнение матрицы кириллицей
    for(i = 0; i < n; ++i)
    {
        for(j = 0; j < n; ++j)
        {
            arr[i][j] = 'а' + rand()%32;
        }
    }
 
     // словарь
       char rus[6][6] = {{'а', 'б', 'в', 'г' ,'д' , 'е'}, {'ё', 'ж', 'з', 'и' ,'й' , 'к'}, {'л','м','н','о','п','р',}, {'с','т','у','ф','х','ц',}, {'ч','ш','щ','ъ','ы','ь',}, {'э','ю','я',}};
       char eng1[6][6] = {{'a', 'b', 'v', 'g' ,'d' , 'y'}, {'y', 'z', 'z', 'i' ,'i' , 'k'}, {'l','m','n','o','p','r',}, {'s','t','u','f','h','t'}, {'c','s','s','/','y','\\',}, {'e','y','y',}};
       char eng2[6][6] = {{' ', ' ', ' ', ' ' ,' ' , 'е'}, {'o', 'h', ' ', ' ' ,'y' , ' '}, {' ',' ',' ',' ',' ',' ',}, {' ',' ',' ',' ',' ','s'}, {'h','h','c',' ',' ',' ',}, {'h','u','a',}};
       char eng3[6][6] = {{' ', ' ', ' ', ' ' ,' ' , ' '}, {' ', ' ', ' ', ' ' ,' ' , ' '}, {' ',' ',' ',' ',' ',' ',}, {' ',' ',' ',' ',' ',' '}, {' ',' ','h',' ',' ',' ',}, {' ',' ',' ',}};
    
/*
//Вывод исходной матрицы:
 
       cout<<"Old matrix:"<<endl;
       for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<arr[i][j]<<"\t";
        }   cout<<"\n";
       }
*/    
 
// замена
       char res1[n][n];
       char res2[n][n];
       char res3[n][n];
 
       for (int i = 0; i < n; i++)
        {
           for (int j = 0; j < n; j++)
           {
               int p = 0, q = 0;
                for (p = 0; p<6; p++){
                    for (q=0; q<6; q++){
                        if (arr[i][j] == rus[p][q])
                        {
                            res1[i][j] = eng1[p][q];
                            res2[i][j] = eng2[p][q];
                            res3[i][j] = eng3[p][q];
                            break;
                        } 
                   }                  
               }
 
           }
        }
  end_time = omp_get_wtime(); 
   tick = omp_get_wtick(); 
 
/*
       //Вывод новой матрицы:
cout<<"New matrix:"<<endl;
       for (int i=0;i<n;i++){
        for (int j=0;j<n;j++){
            cout<<res1[i][j]<<res2[i][j]<<res3[i][j]<<"\t";
        }   cout<<"\n";
       } 
*/
 
// запись матриц в файл
 
    ofstream fout("report.txt"); 
        fout <<"Old matrix:\n";
            for (int i=0;i<n;i++){
                for (int j=0;j<n;j++)
                    {
                        fout <<arr[i][j]<< " ";
                    }
                        fout<<"\n";
                                }
        fout <<"New matrix:\n";
        for (int i=0;i<n;i++){
            for (int j=0;j<n;j++)
                {
                    fout <<res1[i][j]<<res2[i][j]<<res3[i][j]<< " ";
                }
                    fout<<"\n";
                            }
 
     cout<< "Время на замер времени " << end_time << " -  "<< start_time  << " =  "  << end_time-start_time <<"\n"; 
        cout << "Точность таймера  " <<   tick << "\n"; 
 
    _getch();
    return 0;
}
0
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
10.10.2016, 21:55 12
Noob1875, в строчке 25 у тебя массив выделяется на стеке.
Размер стека сильно ограничен, так что много выделить у тебя не выйдет.
Попробуй выделить массив в куче (Через new, malloc и прочее).
1
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
10.10.2016, 22:01  [ТС] 13
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Noob1875, в строчке 25 у тебя массив выделяется на стеке.
Размер стека сильно ограничен, так что много выделить у тебя не выйдет.
Попробуй выделить массив в куче (Через new, malloc и прочее).
Спасибо, но я не знаком с malloc, буду признателен за кусок кода)
0
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
10.10.2016, 22:04 14
Noob1875,
C++
1
2
3
4
5
char **arr;
arr = new char *[n];
arr[0] = new char[n * n];
for (size_t i = 1; i < n; ++i)
    arr[i] = arr[i-1]+n;
И в конце программы:
C++
1
2
delete[] arr[0];
delete[] arr;
В остальном все как обычно.
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
10.10.2016, 22:09  [ТС] 15
Цитата Сообщение от nonedark2008 Посмотреть сообщение
C++Выделить код
1
2
3
4
5
char **arr;
arr = new char *[n];
arr[0] = new char[n * n];
for (size_t i = 1; i < n; ++i)
* * arr[i] = arr[i-1]+n;
И в конце программы:
C++Выделить код
1
2
delete[] arr[0];
delete[] arr;
В остальном все как обычно.
Не помогло.. Все по-прежнему, при n больше 500 отказывается работать.
0
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
10.10.2016, 22:14 16
Noob1875, в каком виде тебе отказывают?

Добавлено через 2 минуты
Цитата Сообщение от Noob1875 Посмотреть сообщение
при n больше 500 отказывается работать
Т.е. на 500 работает, а на 501 уже нет?
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
10.10.2016, 22:44  [ТС] 17
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Noob1875, в каком виде тебе отказывают?
Добавлено через 2 минуты
Сообщение от Noob1875
при n больше 500 отказывается работать
Т.е. на 500 работает, а на 501 уже нет?
На 582 работает нормально, на 583 при запуске вылетает с окошком Прекращена работа программы.
0
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
10.10.2016, 22:49 18
Noob1875, у меня на твоем коде на 583 вылетает переполнение стека.
Удалил твое "char arr[n][n];", поставил свое из поста выше - стало все ок.
0
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 46
10.10.2016, 23:01  [ТС] 19
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Noob1875, у меня на твоем коде на 583 вылетает переполнение стека.
Удалил твое "char arr[n][n];", поставил свое из поста выше - стало все ок.
Есть ли разница куда ставить удаление массива? Хотя, уверен, проблема не в этом.
0
1389 / 1019 / 323
Регистрация: 28.07.2012
Сообщений: 2,805
10.10.2016, 23:32 20
Цитата Сообщение от Noob1875 Посмотреть сообщение
Есть ли разница куда ставить удаление массива?
Без разницы. Можешь вообще его не ставить.
Если совсем ничего не работает, то скинь сюда сообщение об ошибке вместе со своим кодом.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2016, 23:32
Помогаю со студенческими работами здесь

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

Параллельное программирование
Подскажите учебник с помощью которого можно научиться параллельному программированию

Параллельное программирование
Есть задача, которая хорошо распараллеливается. Ее текущий вариант выполняется неприлично долго:...

Параллельное программирование
Кто-нибудь использовал в своей жизни? Если да, то какой? И были ли положительные результаты в плане...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru