Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 27.12.2011
Сообщений: 15
1

Ошибки в массиве.

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

Author24 — интернет-сервис помощи студентам
Задан двумерный массив 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;    
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2012, 18:13
Ответы с готовыми решениями:

Ошибки в массиве
Дана последовательность целых чисел а1, а2, ..., аn. Выяснить будет ли она возрастающей. #include...

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

Функция: определить, есть ли в массиве последовательная цепочка чисел М1, М2, М3 (найти ошибки в коде)
Здравствуйте. Помогите, пожалуйста, найти ошибки в коде. :cry: Само задание звучит так: 1....

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

1
Эксперт С++
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
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;    
 
}
0
02.02.2012, 23:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2012, 23:42
Помогаю со студенческими работами здесь

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h...

с2079 и с2228 ошибки при компиляции ниже участок кода, с которым праблема и скрины ошибки
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ bool game = true; // КЛАССЫ class Me; class mob { public: void...

Найти ошибки в коде и исправить эти ошибки - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить...

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private:...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru