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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fokino
0 / 0 / 0
Регистрация: 27.12.2011
Сообщений: 15
#1

Ошибки в массиве. - C++

02.02.2012, 18:13. Просмотров 306. Ответов 1
Метки нет (Все метки)

Задан двумерный массив N x N. Разрешается произвольно переставлять элементы внутри любого столбца. Проверить, можно выполнив конечное количество перестановок в столбцах, расположить на побочной диагонали элементы так, чтобы он росли.
Ошибки:
По диагонали не сортирует , массив всегда один и тотже .Помогите пожалуйста.

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
#include <iostream.h>
#include <windows.h>
 
int main()
{
 
const int size=6;
 
char RUS[80];
 
CharToOem("Размер массива: ", RUS);
                  
cout << RUS;
int array[size][size];
 
for( int i = 0; i < size; i++)
{
        for(int j = 0; j < size; j++)
        {
                           
                           array[i][j] = rand() % 20;
        }
        
 
}
 
//СОРТИРОВКА ВНУТРИ СТОЛБЦА
 
for(int stolb = 0; stolb < size; stolb++)
{
        for(int a = 1; a < size; a++){
        
        for(int b = size -1; b >= a; b--){
                
                if(array[b-1][stolb] > array[b][stolb]){
                              
                              int t = array[b][stolb];
                              array[b][stolb] = array[b-1][stolb];
                              array[b-1][stolb] = t;
                              
                }
        }
        
}
        
}
 
CharToOem("Отсортированый массив:\n", RUS); cout << RUS;
 
for(int i = 0; i < size; i++)
{
        for(int j = 0; j < size; j++)
        {
                           
                           
                           cout << array[i][j] << "\t";
        }
        cout << endl;
 
}
 
int r = 1;
 
for(int i = 0; i < size; i++)
{
        if(array[i][i] > array[i+1][i+1]) r = 0;
        
}  
 
switch(r){
          case 0:
               CharToOem("\nВ данном массиве числа по диагонале не в порядке возростания.\n", RUS);
               cout << RUS;
               break;
          case 1:
               CharToOem("\nВ данном массиве числа по диагонале в порядке возростания.\n", RUS);
               cout << RUS;
               break;
          default:
                  break;
}
                         
system("pause");
 
return 0;    
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2012, 18:13     Ошибки в массиве.
Посмотрите здесь:

Ошибки в массиве - C++
Дана последовательность целых чисел а1, а2, ..., аn. Выяснить будет ли она возрастающей. #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; ...

Ошибки индексации в двумерном массиве - C++
Не спрашивайте зачем, мне просто нужно срочно решить это)) помогите понять, почему не корректно работает функция.. правильно отрабатывает...

Реализовать рекурсивную функцию, находящую количество отрицательных элементов в массиве (найти ошибки в коде) - C++
Не могу понять в чем проблема. Программа не считает количество отрицательных элементов в массиве. Функция в себя входит, условие тоже...

Найти элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве B - C++
Нужно найти элементы, присутствующие в нескольких экземплярах либо только в массиве А, либо только в массиве B и перенести в одномерный...

Исправить ошибки в массиве. - Pascal
Мне написали программу , но при запуске данные в окне постоянно бегают снизу вверх, что нужно сделать , чтобы этого не было? помогите...

Исправить ошибки в массиве. - Pascal
Помогите докончить! не выходит что то! {Дан массив размером 7х7. Заменить все повторяющиеся элементы на квадрат этого элемента.} ...

Ошибки при поиске в массиве - PHP
Есть json-строка следующего вида: { &quot;code&quot;:&quot;IEV&quot;, &quot;name&quot;:&quot;Kiev&quot;, &quot;coordinates&quot;:{ &quot;lon&quot;:30.5, ...

Динамически растущий стек на массиве, исправить ошибки - C (СИ)
Есть код. В строках с номерами 22, 27 и 44 получаю ошибки. Помогите исправить ситуацию. Ошибка: a value of type void* cannot be...

В массиве T (k) найти первый и последний нулевые элементы. Нужно исправить ошибки - C (СИ)
В массиве T (k) найти первый и последний нулевые элементы, помогите исправить ошибки. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Ошибки при передаче данных в динамическом массиве из основной проги в процедуру - Lazarus
почему возникают ошибки компиляции со следующим комментом Error:Parameters or result types cannot contain local type definitions. Use...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.02.2012, 23:42     Ошибки в массиве. #2
Проверяйте:
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.h>
#include <windows.h>
 
 
int main()
{
 
const int size=6;
 
char RUS[80];
 
/CharToOem("Размер массива: ", RUS);
                  
cout << RUS;
int array[size][size];
 
for( int i = 0; i < size; i++)
{
        for(int j = 0; j < size; j++)
        {
                           
                           array[i][j] = rand() % 20;
        }
        
 
}
int r = 1; 
//СОРТИРОВКА ВНУТРИ СТОЛБЦА
int tmp, i_min=0;
for(int i=1; i<size; i++)
    if(array[i][size-1]<array[i_min][size-1])
        i_min=i;
tmp=array[0][size-1]; array[0][size-1]=array[i_min][size-1]; array[i_min][size-1]=tmp;
for(int j=size-2; j>=0; j--)
{
    i_min=-1;
    for(int i=0; i<size; i++)
        if(array[i][j]>array[size-j-2][j+1])
        {
            if(i_min==-1)
                i_min=i;
            else
            {
                if(array[i][j]<array[i_min][j])
                    i_min=i;
            }
        }
    if(i_min==-1)
    {
        r=0; break;
    }
    tmp=array[i_min][j]; array[i_min][j]=array[size-j-1][j]; array[size-j-1][j]=tmp;
}
 
 
switch(r){
          case 0:
               CharToOem("\nВ данном массиве числа по диагонале не в порядке возростания.\n", RUS);
               cout << RUS;
               break;
          case 1:
               CharToOem("\nВ данном массиве числа по диагонале в порядке возростания.\n", RUS);
               cout << RUS;
               CharToOem("Отсортированый массив:\n", RUS); cout << RUS;
               cout<<endl;
               for(int i = 0; i < size; i++)
               {
                   for(int j = 0; j < size; j++)
                   {
                       cout << array[i][j] << "\t";
                   }
                   cout << endl;
               }
               break;
          default:
                  break;
}
                         
system("pause");
 
return 0;    
 
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru