• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Надо составить программу на языке С сортировки двумерного массива размером 6 на 6

  • Автор темы никитан10
  • Дата начала
  • Теги
    1..
Н

никитан10

составить программу на языке С сортировки двумерного массива размером 6 на 6. (стрелка указывает от меньшего к большему элемента

Безымянный.png
 
Последнее редактирование модератором:

Сергей Попов

Кодебай
30.12.2015
4 720
6 707
BIT
371
Прочтите свою тему со стороны человека, который впервые ее читает. Заголовок я за вас изменил. Вы потрудитесь донести мысль до читателя более понятным языком, а не обрывками фраз.
 
  • Нравится
Реакции: sinner67

sinner67

Green Team
24.03.2017
279
358
BIT
0
Можете чуть поподробнее описать задачу, какие значения могут быть в массиве. Лучше будет вообще привести пример.
 
Н

никитан10

Можете чуть поподробнее описать задачу, какие значения могут быть в массиве. Лучше будет вообще привести пример.
я немного делал
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include<stdlib.h>
#include <time.h>
#define N 6
int main()
{
int a[N][N], b[N - 5], c[N];
int i, j, k, mas;
srand(time(0));
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
a[j] = rand() % 100;
for (i = 0; i < N; i++)
{
printf("\n");
for (j = 0; j < N; j++)
printf("%3d", a[j]);
}
for (j = N; j > 3; j--)

{
b[j] = a[j - 4][N - 6];
printf("\n%3d", b[j]);
}
for (k = N - 1; k >= 0; k--)
for (j = 0; j < k; j++)
if (b[j] > b[j + 1])
{
mas = b[j + 1];
b[j + 1] = b[j];
b[j] = mas;

}
for (j = 0; j < N; j++)
{
printf("\n");
for (i = 0; i < N; i++)

printf("%3d", a[j]);
}

for (i = 0; i < N; i++)
{
printf("\n");
for (j = 0; j < N ; j++)
printf("%3d", a[j]);
}
for (j =N; j>3; j--)

{
b[j] = a[j-4][N-5];
printf("\n%3d", b[j]);
}
for (k = N - 1; k >= 0; k--)
for (j = 0; j < k; j++)
if (b[j] > b[j + 1])
{
mas = b[j + 1];
b[j + 1] = b[j];
b[j] = mas;
}

return 0;
}

[doublepost=1511023617,1511023233][/doublepost]
Можете чуть поподробнее описать задачу, какие значения могут быть в массиве. Лучше будет вообще привести пример.
нужно отсортировать элементы массива так, как показано на рисунке стрелка показывает как должно располагаться элемент (от меньшего к большему)
 

SlipX

dd if=/dev/random of=/dev/port
Green Team
13.08.2017
135
167
BIT
0
я немного делал
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include<stdlib.h>
#include <time.h>
#define N 6
int main()
{
int a[N][N], b[N - 5], c[N];
int i, j, k, mas;
srand(time(0));
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
a[j] = rand() % 100;
for (i = 0; i < N; i++)
{
printf("\n");
for (j = 0; j < N; j++)
printf("%3d", a[j]);
}
for (j = N; j > 3; j--)

{
b[j] = a[j - 4][N - 6];
printf("\n%3d", b[j]);
}
for (k = N - 1; k >= 0; k--)
for (j = 0; j < k; j++)
if (b[j] > b[j + 1])
{
mas = b[j + 1];
b[j + 1] = b[j];
b[j] = mas;

}
for (j = 0; j < N; j++)
{
printf("\n");
for (i = 0; i < N; i++)

printf("%3d", a[j]);
}

for (i = 0; i < N; i++)
{
printf("\n");
for (j = 0; j < N ; j++)
printf("%3d", a[j]);
}
for (j =N; j>3; j--)

{
b[j] = a[j-4][N-5];
printf("\n%3d", b[j]);
}
for (k = N - 1; k >= 0; k--)
for (j = 0; j < k; j++)
if (b[j] > b[j + 1])
{
mas = b[j + 1];
b[j + 1] = b[j];
b[j] = mas;
}

return 0;
}

[doublepost=1511023617,1511023233][/doublepost]
нужно отсортировать элементы массива так, как показано на рисунке стрелка показывает как должно располагаться элемент (от меньшего к большему)
засунул бы все вод "код", читать удобней

Код:
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include<stdlib.h>
#include <time.h>
#define N 6
int main()
{
    int a[N][N], b[N - 5], c[N];
    int i, j, k, mas;
    srand(time(0));
    for (i = 0; i < N; i++)
        for (j = 0; j < N; j++)
            a[j] = rand() % 100;
    for (i = 0; i < N; i++)
    {
        printf("\n");
        for (j = 0; j < N; j++)
            printf("%3d", a[j]);
    }
    for (j = N; j > 3; j--)

    {
        b[j] = a[j - 4][N - 6];
        printf("\n%3d", b[j]);
    }
    for (k = N - 1; k >= 0; k--)
        for (j = 0; j < k; j++)
            if (b[j] > b[j + 1])
            {
                mas = b[j + 1];
                b[j + 1] = b[j];
                b[j] = mas;

            }
    for (j = 0; j < N; j++)
    {
        printf("\n");
        for (i = 0; i < N; i++)

            printf("%3d", a[j]);
    }

    for (i = 0; i < N; i++)
    {
        printf("\n");
        for (j = 0; j < N ; j++)
            printf("%3d", a[j]);
    }
    for (j =N; j>3; j--)

    {
        b[j] = a[j-4][N-5];
        printf("\n%3d", b[j]);
    }
    for (k = N - 1; k >= 0; k--)
        for (j = 0; j < k; j++)
            if (b[j] > b[j + 1])
            {
                mas = b[j + 1];
                b[j + 1] = b[j];
                b[j] = mas;
            }

    return 0;
}
 
  • Нравится
Реакции: sinner67
Н

никитан10

засунул бы все вод "код", читать удобней

Код:
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include<stdlib.h>
#include <time.h>
#define N 6
int main()
{
    int a[N][N], b[N - 5], c[N];
    int i, j, k, mas;
    srand(time(0));
    for (i = 0; i < N; i++)
        for (j = 0; j < N; j++)
            a[j] = rand() % 100;
    for (i = 0; i < N; i++)
    {
        printf("\n");
        for (j = 0; j < N; j++)
            printf("%3d", a[j]);
    }
    for (j = N; j > 3; j--)

    {
        b[j] = a[j - 4][N - 6];
        printf("\n%3d", b[j]);
    }
    for (k = N - 1; k >= 0; k--)
        for (j = 0; j < k; j++)
            if (b[j] > b[j + 1])
            {
                mas = b[j + 1];
                b[j + 1] = b[j];
                b[j] = mas;

            }
    for (j = 0; j < N; j++)
    {
        printf("\n");
        for (i = 0; i < N; i++)

            printf("%3d", a[j]);
    }

    for (i = 0; i < N; i++)
    {
        printf("\n");
        for (j = 0; j < N ; j++)
            printf("%3d", a[j]);
    }
    for (j =N; j>3; j--)

    {
        b[j] = a[j-4][N-5];
        printf("\n%3d", b[j]);
    }
    for (k = N - 1; k >= 0; k--)
        for (j = 0; j < k; j++)
            if (b[j] > b[j + 1])
            {
                mas = b[j + 1];
                b[j + 1] = b[j];
                b[j] = mas;
            }

    return 0;
}
спасибо
 

sinner67

Green Team
24.03.2017
279
358
BIT
0
как же я "обожаю" сортировки!
Код:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define N 6
int main()
{
  int a[N][N] = {0,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}; //Исходный массив
  int i, j, k, //Переменные для прохода по массиву
  ch, //Переменная для отслеживания цикла смены направления сортировки
  sw, //Переменная-переключатель сортировки
  buff, //Дополнительная переменная для смены значений
  line; //Переменная для отслеживания линий
 
  int b[N*N]; //Массив для преобразования матрицы в строку
 
  k = 0;
  /*Преобразовываем матрицу в строку*/
  for (i = 0; i<N; i++) 
  {
    for (j = 0; j<N; j++)
    {
      b[k] = a[i][j];
      k++;
    }
  }
 
  ch = 0;
  sw = 0;
  line = 0;
  /*Производим сортировку*/
  for (i = 0; i < N*N - 6; i++){
      switch(sw){
          case 0:
              if (b[i] < b[i + 6]){
                  buff = b[i];
                  b[i] = b[i + 6];
                  b[i + 6] = buff;
              }
              break;
          case 1:
              if (b[i] > b[i + 6]){
                  buff = b[i];
                  b[i] = b[i + 6];
                  b[i + 6] = buff;
              }
              break;
          default: break;
      }
      ch++;
      if (ch == 2){
          if (sw == 0){
              sw = 1;
              ch = 0;
          }
          else {
              sw = 0;
              ch = 0;
          }
      }
    line++;
    if (line == 6){
        i += 6;
        line = 0;
    }
      
  }

    /*Преобразовываем строку в матрицу*/
    i = 0;
    j = 0;
    for (k = 0; k < N*N; k++){
        a[i][j] = b[k];
        j++;
        if (j == 6) {
            i++;
            j = 0;
        }
    }
    

  getchar(); getchar();
  return 0;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!