|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.05.2012, 15:27 | #1 |
Регистрация: 16.12.2009
Сообщений: 3
|
проблема сортировки в матрице
есть исходник с программой, но не работает сортировка
+Отсортировать числа «по ступенькам» относительно главной диагонали. 2) Вывести максимальное число среди тех чисел, которые НЕ подверга-лись сортировке.(не смог сделать) сделал, но просто занулил элементы а нужно как то написать по умному чтоб без такого было заранее спасибо код программы: #include<stdio.h> #include <stdlib.h> #define N 16 int main() { int x; printf ("Для автоматического задания матрицы нажмите 1\n"); printf ("Для самостоятельного задания матрицы нажмите 2\n\n"); scanf ("%i", &x); int n, i, j; int A[N][N]; if ((x != 1) && (x !=2)){ printf ("\nНеверный ввод !\n"); return -1; } printf ("\nВведите размерность матрицы: n = "); scanf ("%i", &n); printf ("\n"); if ((n > N-8) || (n < 1)) { printf ("Недопустимое значение n\n"); return -1; } if (x == 1){ printf ("Исходная матрица\n\n"); srand (time(0)); for (i = 0; i < n; i ++){ for (j = 0; j < n; j ++){ A[i][j] = rand () % 200-100; printf ("%3i", A[i][j]); } printf ("\n \n"); } } if (x == 2) { printf ("\nЗадайте значения для каждого элемента матрицы:\n\n"); for (i = 0; i < n; i++){ for (j = 0; j < n; j++) { printf ("A[%i][%i] = ", i, j); scanf ("%i", &A[i][j]); } } printf ("\nИсходная матрица:\n\n"); for (i = 0; i< n; i++){ for (j = 0; j < n; j++) { printf ("%3i", A[i][j]); } printf ("\n \n"); } } int B[N]; j = 0; for (i = 0; i < n; i++) { B[j] = A[i][i]; j++; // printf ("B[%i] = %i\n", j-1, B[j-1]); if (i+1 < n){ B[j] = A [i][i+1]; j++; // printf ("B[%i] = %i\n", j-1, B[j-1]); } } int k; // printf ("\nСортировка\n\n"); for (j = 0; j < 2*n-1; ++j) { int index_min = j; for (k = j + 1; k < 2*n-1; ++k) { if (B[k] < B[index_min]) { index_min = k; } } if (j != index_min) { int tmp = B[j]; B[j] = B[index_min]; B[index_min] = tmp; } } for (j = 0; j < 2*n - 1; ++j) { // printf ("B[%i] = %i\n", j, B[j]); } printf ("\nОтсортированная матрица\n\n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++){ A[i][i] = B[2*j]; A[i][i+1] = B[(2*j)-1]; printf ("%3i", A[i][j]); } printf ("\n \n"); } // printf ("Вторая матрица\n\n"); for (i = 0; i< n; i++) { for (j = 0; j < n; j++){ A[i][i] = -99; A[i][i+1] = -99; // printf ("%3i", A[i][j]); } // printf ("\n \n"); } int maxi = 0, maxj = 0; for (i = 0; i< n; i++) { for (j = 0; j < n; j++){ if (A[i][j] > A[maxi][maxj]) { maxi = i; maxj = j; } } } printf("\n"); printf("Максимальное число среди не отсортированных равно %i\n", A[maxi][maxj]); } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
структуры данных. проблема сортировки однонаправленного списка. | s-mumrik | Общие вопросы C/C++ | 0 | 24.05.2012 15:46 |
Алгоритмы сортировки пирамидальный(кучей) и быстрой сортировки (с++) | mmd12 | Помощь студентам | 4 | 17.05.2012 14:14 |
В матрице... | Avvakymova | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 08.05.2011 13:53 |
Проблема Шейкер-сортировки vs алгоритма простого слияния... | a9N2k | Помощь студентам | 5 | 06.02.2011 12:43 |
Проблема с алгоритмом быстрой сортировки | maryan.vetrov | Общие вопросы C/C++ | 2 | 31.08.2010 18:56 |