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

Переделать из одномерного массива в матрицу! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ найти причину вылета программы http://www.cyberforum.ru/cpp-beginners/thread268509.html
Вообщем написал программу, вроде бы все правильно (так говорит компилятор), но программа вылетает с ошибкой "Отправить отчет/Не отправлять", вообщем вы все ее знаете. #include <stdio.h> #include <iostream.h> #include <fstream.h> int n3x3(int nmas) { int np, ns, d; // calculating 3x3 minor
C++ Перевести двоичное число в десятичное у меня есть например ASCII код в двоичной системе какого то символа. как вывести это двоичное число чтоб на экране вывелась буква соответствующая этому двоичному коду? http://www.cyberforum.ru/cpp-beginners/thread268503.html
C++ Время выполнения программы увеличивается, если добавить проверку
я написал программу на перебор цикла из массива. И время её выполнения в данном примере занимает 5секунд, однако, если добавить 15 строку время увеличивается до 30 секунд. Вопрос почему? #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv) { system("PAUSE"); const int k=10; int mass;long long int r=-11,v=100000000; int s=0; for( int i...
C++ Удаление чисел последовательности, которые стоят на нечетных местах
Задача Del. Дано ряд последовательных натуральных чисел от n до m, из которого удаляют сначала все числа, которые стоят на непарных местах, и так делают до тех пор, пока не останется одно единственное число. Напишите программу, которая найдет это число. Технические условия. Программа Del читает с клавиатуры числа n и m через пропуск (n<m<1000000). Программа выводит на экран единственное...
C++ классы http://www.cyberforum.ru/cpp-beginners/thread268465.html
1.Описать класс с именем NOTE, содержащий следующие поля: фамилия, имя; номер телефона; день рождения (массив из трех чисел). 2.Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона; вывод на экран информации о человеке, чья фамилия введена с клавиатуры;...
C++ Блокировка приложений. Доброго времени суток. необходим совет. Коротко о задаче .. программа должна просматривать запускаемые процессы и в случаи если они обращаются к определенным библиотекам прекращать их работу. поясню для чего - надо что бы на компьютере не запускались игры, но при этом без проблем работали офисные программы и приложения. Нужен совет по поводу WinAPI ф-ций, какие лучше использовать для сей... подробнее

Показать сообщение отдельно
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
02.04.2011, 14:19  [ТС]     Переделать из одномерного массива в матрицу!
Vandris, я так и делала!!!отсортровала по возрастанию а потом нашла минимум!выше же всё написано!


CМОТРИТЕ!!!ВОТ!!ПРОВЕРЬТЕ - ТОКА БОЛЬШЕ ЧЕМ 5 СТРОК И СТОЛБЦОВ НЕ РАБОТАЕТ -почему не знаю....Вот!СОРТИРУЕТ И НАХОДИТ МИНИМУМЫ!!!Только как теперь от сортированной по строкам матрицы перейти к несортированной в строках???....я думую надо что-то как-то очистить или что...я не знаю....Ну помогите,ну пожалуйста!!!!


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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <conio.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
 // n<=5 и m<5
 
class DinArr
{
 
    int **M , n , m , *S ;
 
  public:
 
 
  DinArr(int k1 , int k2)
  {  n=k1 ; m=k2 ;
     //Создание динамической матрицы
     M=new int*[m];
     for(int i=0; i<n ; i++)
    M[i]=new int[n] ;
    //Создание динамического одномерного массива
    S=new int[m] ;
 
  }
 
 
 
  void MyDefMatr()
  {   randomize() ;
      for(int i=0 ; i<m ; i++)
       for(int j=0 ; j<n ; j++)
       M[i][j]=random(20) ;
 
  }
 
 
 
 
 
 
void MySortMatr()
{
 
 
for (int i=0; i<m ; i++ )
   {
 
 
   int flag , k=n ;
    do
     {
 
      flag=0 ;
       k-- ;
       for( int j=0 ; j<k ; j++ )
         if (M[i][j]>M[i][j+1])
          {   flag=1 ;
               int t=M[i][j] ;
                   M[i][j]=M[i][j+1] ;
                   M[i][j+1]=t ;
          }
    }
    while(flag) ;
  }
   }
  
 
 
 
 
 
 void MyMin()
 {
  for(int i=0 ; i<m ; i++)
 {
   int k=0 , imin=0;
 
   for(int j=0 ; j<n ; j++ )
        { if (  (M[i][j])!=(M[i][j+1]))
             k++ ;
             if (k<=i)
              imin = M[i][j+1];
              else  {imin = M[i][j]; break;} 
         }
       S[i]=imin ;
}
 }
 
 
 
void MyPrint(int c1=10)
{
for(int i=0;i<m;i++)
        {  textcolor(c1);
        printf("\n");
          for(int j=0; j<n; j++)
            cprintf("%5d",M[i][j]);
                }
       printf("\n");
     }
 
 
 
 
 
 
 
 
void FunPrint (int c2=7)
      {  textcolor(c2);
      for(int i=0;i<m;i++)
        {
        printf("\n");
          for(int j=0; j<n; j++)
            { textcolor(c2);
            cprintf("%5d",M[i][j]);  }
             textcolor(c2);
            cprintf("  => %5d",S[i]);
                }
       printf("\n");
     }
 
 
 
 void   FunSort()
{   int MyMin, NMin;
    for(int start=0;start<m;start++)
         {
 
           MyMin=S[start];   NMin=start;
           for(int i=start;i<m;i++)
               if(S[i]<MyMin)
                { MyMin=S[i];
                   NMin=i;
                 }
 
 
 
           /* Переставляем адреса строк матрицы с номерами start и NMin.
              Элементы этих строк остаются на старых местах  */
           int *p=M[start];
               M[start]=M[NMin];
               M[NMin]=p;
           /* Переставляем элементы одномерного массива с номерами start и NMin */
           int t=S[start];
           S[start]=S[NMin];
           S[NMin]=t;
        }
   }
 
 
 } ;
 
 
 
 
 
int main(int argc, char* argv[])
{  // randomize;
   // DinArr ObjArr(random(Nmax));   или
   // DinArr ObjArr(6);     или
   unsigned n,m;
   cout<<"n=" ;
         cin>>n;
   cout<<"m=";
         cin>>m;
   DinArr ObjArr(n,m);
   ObjArr.MyDefMatr();
    ObjArr.MyPrint ();
     ObjArr.MySortMatr();
         ObjArr.MyMin() ;
      ObjArr.FunPrint  (15);
        ObjArr.FunSort() ;
       ObjArr.FunPrint  (14);
   getch();
   return 0;}
 
Текущее время: 01:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru