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

Сортировка матрицы (С++ Builder 6) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не работает функция, которая делит строку по разделителю http://www.cyberforum.ru/cpp-beginners/thread1072868.html
Функция разделяет строку string str на части, каждая часть ограничена разделителем string razdelitel, результат записывается в массив result_mass 1) она не работает если разделитель не писать текстом "1234", а передавать через переменную то есть если массив razdelitel_ch заменить на "1234" (то есть записать текстом), то все работает, а мой пример нет 2) даже если писать разделитель...
C++ Определить какой элемент в массиве, расположен раньше : наибольший или наименьший Народ нужна помощь с C++ кто может помочь помогите. Условия: Определить какой элемент в массиве, расположен раньше : наибольший или наименьший http://www.cyberforum.ru/cpp-beginners/thread1072854.html
шаблоны функций C++
Помогите пожалуйста с задачей: Разработайте программу, в которой реализовано нахождение количества пар одинаковых по значению соседних элементов одномерного массива. используя шаблоны функций
Проверить, совпадают ли матрицы C++
"Даны две квадратные матрицы размером n×n. Проверить, совпадают ли они." Вот мой говнокод, который не работает и постоянно выдает мне "матрицы совпадают", в чем ошибка товарищи? #include <iostream.h> #include <conio.h> #include <limits.h> const int n = 3, m = 3; const int f = 3, y = 3; void main()
C++ Вычислить сумму элементов массива, расположенных после минимального элемента http://www.cyberforum.ru/cpp-beginners/thread1072785.html
В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить сумму элементов массива, расположенных после минимального элемента. //--------------------------------------------------------------------------- #include "stdafx.h" #include <iostream> #include <conio.h> #include <math.h> using namespace std; #pragma hdrstop
C++ Заменить каждую последовательность, содержащую более одного пробела, на один пробел В заданной строке заменить каждую последовательность, содержащую более одного пробела, на один пробел. Например: "a bcd ef . gh 90" - "a bcd ef . gh 90" Всё что я на данный момент смог, это создать строку... Подскажите подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
5601 / 2635 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
16.01.2014, 16:37     Сортировка матрицы (С++ Builder 6)
франкенштейн
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
#include <stdio.h> // подключение библиотеки ввода/вывода
#include <conio.h> // подключение библиотеки консольного ввода/вывода
#include <math.h> // подключение математической библиотеки
 
main()
{
        int a[50][50], n, m, b; // Объявление переменных типа int
        printf("\n Vvedite chislo strok: "); // Введите число строк
        scanf("%d", &n);
        printf("\n Vvedite chislo stolbcov: "); // Введите число столбцов
        scanf("%d", &m);
        for (int i=1; i<=n; i++)        { // Заполнение массива
        for (int j=1; j<=m; j++)        {
            printf("Vvedite element[%d,%d]: ", i, j);
            scanf("%d",&a[i][j]);
        }
        }
 
 
        int numMinColumn = 1, // По умолчанию выбран первый столбец на случай, если в нем нету вообще нулей (самое минимальное количество)
            tempK = 0;
        for (int i=1; i<=n; i++)  { // Строки
        int j, k=0;
        for (j=1; j<=m; j++)  {   // Столбцы
            if (a[j][i]==0)
                if( i == 1 )       // Подсчет нулей
                    tempK=tempK+1; //  первого столбца
                else
                    k=k+1;         //  кроме порвого
        }
        if( i > 1 && k < tempK )   // Если уже не первый столбец и в текущем нулей меньше чем в запомненном
          {
          tempK = k;          // Запомнить минимальное количество нулей
          numMinColumn = i;   // Запомнить номер столбца
          }
 
        }
        printf("numMinColumn = %d\n", numMinColumn); // Вывод
 
 
 
        for (int g=1;g<=n;g++)          {
        for (int h=1;h<=m;h++)          {
                printf("%d\t", a[g][h]);
    }
        printf("\n");
}
        getch();
}

все задание в человеческом форматировании
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
#include <stdio.h> // подключение библиотеки ввода/вывода
#include <conio.h> // подключение библиотеки консольного ввода/вывода
#include <math.h> // подключение математической библиотеки
 
main()
{
        int n, m;
        int a[50][50] = {0};
        int X[50] = {0};
 
        printf("Vvedite chislo strok: ");
        scanf("%d", &n);
        printf("Vvedite chislo stolbcov: ");
        scanf("%d", &m);
 
        for( int i=0; i<n; i++ )                         //// Ввод
          for( int j=0; j<m; j++ )                         //
            {                                              //
            printf( "Vvedite element a[%d,%d]: ", i, j );  //
            scanf( "%d",&a[i][j] );                        //
            }                                              //
                                                           //
        for( int j=0; j<m; j++ )                           //
          {                                                //
          printf( "Vvedite element X[%d]: ", j );          //
          scanf( "%d",&X[j] );                             //
          }                                              ////
 
 
        int numMinColumn = 0, tempK = 0;
 
        for( int j=0; j<m; j++ )          ////
          if( a[j][0]==0 )                  //
            tempK++;                      //// В первом столбце нулей
 
        for( int i=1; i<n; i++ ) // Со второго столбца
          {                        //  поиск с минимальным количеством
          int j, k = 0;            //
          for( j=0; j<m; j++ )     //
            if( a[j][i]==0 )       //
              k++;                 //
                                   //
          if( k < tempK )          //
            {                      //
            tempK = k;             //
            numMinColumn = i;      //
            }                      //
          }                      ////
        printf("numMinColumn = %d\n", numMinColumn + 1);
 
        for( int j=0; j<m; j++ )      // Замена столбца
          a[j][numMinColumn] = X[j];  //
 
        for( int i=0; i<n; i++ )       //// Вывод
          {                              //
          for( int j=0; j<m; j++ )       //
            printf( "%d\t", a[i][j] );   //
          printf( "\n" );                //
          }                            ////
 
getch();
}

плюс с использованием динамических массивов
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 <stdio.h> // подключение библиотеки ввода/вывода
#include <conio.h> // подключение библиотеки консольного ввода/вывода
#include <math.h> // подключение математической библиотеки
 
main()
{
        int n, m;
 
        printf("Vvedite chislo strok: ");
        scanf("%d", &n);
        printf("Vvedite chislo stolbcov: ");
        scanf("%d", &m);
 
 
        int **a = new int*[n];
        for( int i=0; i<n; i++ )
          a[i] = new int[m];
        int *X = new int[m];
 
        for( int i=0; i<n; i++ )                         //// Ввод
          for( int j=0; j<m; j++ )                         //
            {                                              //
            printf( "Vvedite element a[%d,%d]: ", i, j );  //
            scanf( "%d",&a[i][j] );                        //
            }                                              //
                                                           //
        for( int j=0; j<m; j++ )                           //
          {                                                //
          printf( "Vvedite element X[%d]: ", j );          //
          scanf( "%d",&X[j] );                             //
          }                                              ////
 
 
        int numMinColumn = 0, tempK = 0;
 
        for( int j=0; j<m; j++ )          ////
          if( a[j][0]==0 )                  //
            tempK++;                      //// В первом столбце нулей
 
        for( int i=1; i<n; i++ ) // Со второго столбца
          {                        //  поиск с минимальным количеством
          int j, k = 0;            //
          for( j=0; j<m; j++ )     //
            if( a[j][i]==0 )       //
              k++;                 //
                                   //
          if( k < tempK )          //
            {                      //
            tempK = k;             //
            numMinColumn = i;      //
            }                      //
          }                      ////
        printf("numMinColumn = %d\n", numMinColumn + 1);
 
        for( int j=0; j<m; j++ )      // Замена столбца
          a[j][numMinColumn] = X[j];  //
 
        for( int i=0; i<n; i++ )       //// Вывод
          {                              //
          for( int j=0; j<m; j++ )       //
            printf( "%d\t", a[i][j] );   //
          printf( "\n" );                //
          }                            ////
 
getch();
 
delete[] X;
for( int i=0; i<n; i++ )
  delete[] a[i];
delete[] a;
}

и в C++ виде
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
#include <iostream.h>
 
int main()
{
        int n, m;
 
        cout << "Vvedite chislo strok: ";
        cin >> n;
        cout << "Vvedite chislo stolbcov: ";
        cin >> m;
 
 
        int **a = new int*[n];
        for( int i=0; i<n; i++ )
          a[i] = new int[m];
        int *X = new int[m];
 
 
        for( int i=0; i<n; i++ )                                 //// Ввод
          for( int j=0; j<m; j++ )                                 //
            {                                                      //
            cout << "Vvedite element a[" << i << "," << j << "]: ";//
            cin >> a[i][j];                                        //
            }                                                      //
                                                                   //
        for( int j=0; j<m; j++ )                                   //
          {                                                        //
          cout << "Vvedite element X[" << j << "]: ";              //
          cin >> X[j];                                             //
          }                                                      ////
 
 
        int numMinColumn = 0, tempK = 0;
 
        for( int j=0; j<m; j++ )          ////
          if( a[j][0]==0 )                  //
            tempK++;                      //// В первом столбце нулей
 
        for( int i=1; i<n; i++ ) // Со второго столбца
          {                        //  поиск с минимальным количеством
          int j, k = 0;            //
          for( j=0; j<m; j++ )     //
            if( a[j][i]==0 )       //
              k++;                 //
                                   //
          if( k < tempK )          //
            {                      //
            tempK = k;             //
            numMinColumn = i;      //
            }                      //
          }                      ////
        cout << "numMinColumn = " << numMinColumn + 1 << endl;
 
        for( int j=0; j<m; j++ )      // Замена столбца
          a[j][numMinColumn] = X[j];  //
 
        for( int i=0; i<n; i++ )       //// Вывод
          {                              //
          for( int j=0; j<m; j++ )       //
            {                            //
            cout.width(5);               //
            cout << a[i][j];             //
            }                            //
          cout << endl;                  //
          }                            ////
 
cin.ignore(2);
 
delete[] X;
for( int i=0; i<n; i++ )
  delete[] a[i];
delete[] a;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru