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

Не корректное выполнение сортировки двумерного массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ [C++] декларация класса со статическим полем http://www.cyberforum.ru/cpp-beginners/thread401805.html
Не сингелтон, а класс со статическим именно полем, а не экземпляром. Как это пишется, я знаю, если у меня будет реальная задача на такое поле, я её решу. Просто сейчас не могу сочинить пример на эту тему, чтоб был и простым, и осмысленным, но не сингелтоновым, а надо сделать именно для примера фрагмент UML диаграммы классов с атрибутом, принадлежащим одновременно всем экземплярам, сингелтон же...
C++ Задача по struct 100 wmr in veterinary clinic exists log about pets, where are registered their age, health status and type(cat, dog ...). It is necessary to give information about pets, which age is less than 2 months and health status less than satisfactory (it is required to give the set of pets as dynamic array, the given definition you can expand as much necessary for you) в ветеринарной клинике... http://www.cyberforum.ru/cpp-beginners/thread401798.html
Произвести такое превращение матрицы, при котором последний столбец займет место первого C++
напишите пожалуйста код программы!! Произвести такое превращение матрицы А(m,n) (m<=5, n<7) при котором последний столбец займет место первого, а все остальные сместятся на один столбец вправо.
Задача про символы C++
помогите написать прогу В каждой строке текста найти символ, который встречается наименьшее количество раз.
C++ найти сумму максимальных элементов http://www.cyberforum.ru/cpp-beginners/thread401760.html
напишите пожалуйста код программы!! В матрице А(m,n) (m<=7, n<=5) найти сумму максимальных элементов ее строк и их индексов.
C++ Кружочки и прямоугольнички Парни у кого найдется свободная минутка или полчасика помогите плз! Задание Навстречу друг к другу движуться наборы кругов(слева) и прямоугольников(справа), все разного цвета, разного размера и с разной скоростью. При столкновении друг с другом они исчезают. подробнее

Показать сообщение отдельно
HaRuKy
 Аватар для HaRuKy
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 287
09.12.2011, 21:55  [ТС]     Не корректное выполнение сортировки двумерного массива
Вставил цикл сортировки в исходник теперь 3 часть из алгоритма работает корректно.
Некорректная работа программы проявляется в том, что в результате , при выборе строки он выдает сообщение что это строка отсортирована, например по убыванию, а одномерный массив sort[i] выдает значение 1 , т.е. строка упорядочена по возрастанию...
Подскажите пожалуйста, в чем может быть причина ...? очень нужно...

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
#include "iostream.h"
#include "stdlib.h"
#include "stdio.h"
#include "conio.h"
#define N 100
#define M 100
void main()
{ randomize();
  clrscr();
  int i,j,n,m,a[N][M];
  printf("Vvedite massiv:\n");
  scanf("%d %d", &n, &m);
  printf("n=%d m=%d \n",n,m);
  for(i=0;i<n;i++)
  {for(j=0;j<m;j++)
  {a[i][j]=random(9);
  printf("%3d", a[i][j]); }
  cout<<endl; }
  int ps1=0,ps2=0,ps3=0,k=1,n_str,buf;
  printf("Vvedite nomer stroki = \n");
// цикл для проверка выбранной строки двумерного массива + выдача сообщения о сортировке строки
  [B]scanf("%d", n_str);
  int sort[N];
  for(i=0;i<n-1;i++)
    { if (a[n_str][j]>=a[n_str][j+1]) {ps1=1;k++;} else {ps1=0;k=1;};
      if (a[n_str][j]<=a[n_str][j+1]) {ps2=2;k++;} else {ps2=0;k=1;};};
      if ((ps1==1) && (k==m)) {printf("vozrastaet");} else
       if ((ps2==2) && (k==m)) {printf("ybivaet");} else
     printf("ne otsortirovana");
  cout<<"\n";
// цикл для проверка всех строк двумерного массива на условия сортировки + если возрастает, то массив sort[i] выдает значение -1 если убывает или не отсортирована то массив выдает значение 1.
  for(i=0;i<n;i++)
   {for(j=0;j<m-1;j++)
    { if (a[i][j]>=a[i][j+1]) {ps1=1; k++;}   else
       if (a[i][j]<=a[i][j+1]) {ps2=2;k++;};};
    if ((ps1==1) && (k==m)) {sort[i]=-1;} else
     if ((ps2==2) && (k==m)) {sort[i]=1;} else
     sort[i]=1; }[/B]
    printf("Sortirovka po vozrastaniu: \n");
    for(i=0; i<n; i++)
     { if(sort[i]==1)
       { for(int c=1; c<n; c++)
     { for(int z=0; z<n-c;z++)
       { if(a[i][z]>a[i][z+1])
         { buf=a[i][z];
         a[i][z]=a[i][z+1];
         a[i][z+1]=buf;
         }
       }
     }
       }
     }
    for(i=0;i<n;i++) cout<<sort[i]<<" "; cout<<"\n";
     for(i=0; i<n; i++)
      { for(j=0; j<m; j++)
       { printf("%2d", a[i][j]);
       }  cout<<"\n";
      }
  getch();
}
 
Текущее время: 20:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru