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

Матрица (Не получается ввести с клавиатуры произвольные число строк и столбцов массива) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать в С++ http://www.cyberforum.ru/cpp-beginners/thread841101.html
Program P7_2; uses crt; var n,p,q,i,c,z:integer; procedure pervaya(n:integer; var p,q:integer); var c,z:integer; begin p:=1; q:=1; for i:=2 to n do begin
C++ В массиве заменить все элементы, следующие за наименьшим элементом, единицами (найти ошибку) Задание: В массиве С заменить все элементы, следующие за наименьшим элементом единицами. Вот код: #include <iostream> #include <conio.h> using namespace std; int main() { int C,min=0; http://www.cyberforum.ru/cpp-beginners/thread841098.html
Массивы. Величины максимального и минимального элементов массива C++
Разработать функцию, обрабатывающую массив и вычисляющую две величины. Кроме того, разработать две функции, которые вычисляют те же самые величины по отдельности. Применить эти подпрограммы в одной...
Работа с базами данных Access C++
Добрый день увариваемые программисты.. Задали курсовую(буквально вчера) сделать надо до середины мая. Курсовая состоит в том что нужно создать базу данных в С++. Сказали можно сделать как и в самом...
C++ Линейный список (создать, удалить элемент, добавить элемент, вывести всё эементы) http://www.cyberforum.ru/cpp-beginners/thread841078.html
в общем, передо мной стоит задача создать линейный список(в этом линейном списке у меня хранится фамилия человека, год, в котором он родился и его знак зодиака). в этом линейном списке нужно удалить...
C++ Найдите сумму элементов сбалансированного дерева, находящихся на уровне k В динамических структурах не могу разобраться, сколько бы ни пытался.... Надеюсь на вашу помощь в выполнении заданий... 2. Найдите сумму элементов сбалансированного дерева, находящихся на уровне k. подробнее

Показать сообщение отдельно
Genn55
367 / 214 / 41
Регистрация: 26.12.2012
Сообщений: 708
18.04.2013, 22:16  [ТС]
Если я правильно понял,мне нужно создать 2 динамических двумерных массива?

Добавлено через 20 часов 47 минут
Спасибо,что подсказали в какую сторону копать.Переписал код,но все равно дает ошибку не понимаю почему столбцы не сортируются.В статическом все нормально,а в динамическом нет, в чем дело не пойму.Заполняется правильно,а работает с ошибками.
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
//сортировка двухмерного массива
//по возрастанию
 
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include <windows.h>
 
using namespace std;
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
   srand(time(NULL));
    int str,stolb,temp;
 
    cout <<"Введите количество строк"<<"\n";
    cin >> str;
    cout<<"Введите количество столбцов"<< "\n";
    cin >> stolb;
    cout<<"\n";
    cout<<"До сортировки""\n";
 
    // динамическое создание двумерного массива
    int **mass = new int* [1]; // строк в массиве
    for (int i = 0; i < str; i++)
        mass[i] = new int [1]; // столбцов
    // заполнение массива и вывод на экран
     for(int i=0;i<str;i++)
    {
        for(int j=0;j<stolb;j++)
         {
            mass[i][j]=1+rand()%100;
            cout<<mass[i][j]<<"\t";
         }
        cout<<"\n";
    }
        //Сортируем массив
    for(int i=0;i<=(str*stolb);i++)//колличество проходов
    {
        //в строках упорядочиваем
       for(int i=0;i<str;i++)
         {
           for(int j=0;j<stolb-1;j++)
            {
              if(mass[i][j]>mass[i][j+1])
               {
                 temp=mass[i][j];
                 mass[i][j]=mass[i][j+1];
                 mass[i][j+1]=temp;
               }
            }
         }
       //в столбах упорядочиваем
          for(int x=0;x<stolb;x++)
         {
           for(int z=0;z<str-1;z++)
            {
              if(mass[z][x]>mass[z][x+1])
               {
                 temp=mass[z][x];
                 mass[z][x]=mass[z][x+1];
                 mass[z][x+1]=temp;
               }
           }
        }
 
     }
    //вывод на экран после сортировки
    cout<<"После сортировки ""\n";
    for(int i=0;i<str;i++)
    {
        for(int j=0;j<stolb;j++)
        {
            cout<<mass[i][j]<<"\t";
        }
        cout<<"\n";
    }
    // удаление двумерного динамического массива
    for (int i = 0; i < str; i++)
        delete []mass[i];
return 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
//сортировка двухмерного массива
//по возрастанию
 
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include <windows.h>
 
using namespace std;
int main()
{
   SetConsoleCP(1251);
   SetConsoleOutputCP(1251);
    srand(time(NULL));
    const int str=3;
    const int stolb=3;
    int mass[str][stolb];
    int temp;
    //заполняем двухмерный массив и выводим на экран
    cout<<"До сортировки""\n\n";
    for(int i=0;i<str;i++)
    {
        for(int j=0;j<stolb;j++)
         {
            mass[i][j]=1+rand()%100;
            cout<<mass[i][j]<<"\t";
         }
        cout<<"\n\n";
    }
    //Сортируем массив
    for(int i=0;i<=(str*stolb);i++)//колличество проходов
    {
        //в строках упорядочиваем
       for(int i=0;i<str;i++)
         {
           for(int j=0;j<stolb-1;j++)
            {
              if(mass[i][j]>mass[i][j+1])
               {
                 temp=mass[i][j];
                 mass[i][j]=mass[i][j+1];
                 mass[i][j+1]=temp;
               }
            }
         }
       //в столбах упорядочиваем
       for(int x=0;x<stolb;x++)
         {
           for(int z=0;z<str-1;z++)
            {
              if(mass[z][x]>mass[z][x+1])
               {
                 temp=mass[z][x];
                 mass[z][x]=mass[z][x+1];
                 mass[z][x+1]=temp;
               }
           }
        }
     }
    //вывод на экран после сортировки
    cout<<"После сортировки по возрастанию""\n\n";
    for(int i=0;i<str;i++)
    {
        for(int j=0;j<stolb;j++)
        {
            cout<<mass[i][j]<<"\t";
        }
        cout<<"\n\n";
    }
return 0;
}
А в этом все работает.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru