Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
aidamur
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 43
1

Отсортировать каждую строку матрицы по возрастанию

11.04.2017, 21:50. Просмотров 991. Ответов 3
Метки нет (Все метки)

нужно отсортировать каждую строку двумерной матрицы по возростанию. если можно с объяснением.

Добавлено через 54 минуты
примерно имею следующий код:

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
#include <stdio.h>
 
int main(void)
{
    
    int a[2][4];
    int i, j, z,k,y;
    printf(" vvedite massiv: \n");
    for (i = 0; i < 2; i++)
    for (k = 0; k < 4; k++)
        scanf("a[%d][%d]", &a[i][k]);
    for (i = 0; i < 1; i++) 
    {
        z = a[i];
        for (j = i - 1; j >= 0; j--)
            if (z < a[j]) {
                a[j + 1] = a[j];
                a[j] = z;
            }
    }
     for (i = 1; i < 2; i++) 
        {
        y = a[i];
        for (j = i - 1; j >= 0; j--)
            if (y < a[j]) {
                a[j + 1] = a[j];
                a[j] = y;
            }
    }
    printf("\n otsortirovannyi massiv: \n", a[i]);
    for (i = 0; i < 2; i++)
    for (k = 0; k < 4; k++)
        printf("%d%d\n", a[i][j]);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2017, 21:50
Ответы с готовыми решениями:

Упорядочить каждую строку матрицы по возрастанию элементов
Разработать программу, которая вводит целочисленную матрицу из n строк и m...

Отсортировать указанную строку матрицы по возрастанию
Помогите, пожалуйста, с написанием программы на языке Си. Текст задачи: ...

Дана матрица размерностью nxn, содержащая вещественные числа. Отсортировать каждую строку матрицы по убыванию
Дана матрица размерностью nxn, содержащая вещественные числа. Отсортировать...

Отсортировать числа главной диагонали матрицы по возрастанию
Привет всем! У меня такая проблема вывести рандомный массив 5 на 5 и далее...

Создать матрицу, вывести ее на экран и отсортировать по возрастанию строку с наименьшей суммой элементов (Pascal -> C)
Нужно перевести этот код: uses crt; const m=3; n=4; type mtr=array ...

3
sidor_01
80 / 80 / 72
Регистрация: 25.02.2017
Сообщений: 175
11.04.2017, 21:53 2
Лучший ответ Сообщение было отмечено aidamur как решение

Решение

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
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
#define N 100
#define M 100
void sort(int *a,int n);  
void output(int *a, int n);
int main(void)
{
    int ar[N][M];
    int n,m,i,j;
    srand(time(NULL));
    printf("Enter n and m: ");
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    ar[i][j]=rand()%100;
 
    printf("Array before sorting:\n"); 
    for(i=0;i<n;i++)
    output(ar[i],m);
    
    for(i=0;i<n;i++)
    sort(ar[i],m);
    
    printf("\nArray after sorting:\n"); 
    for(i=0;i<n;i++)
    output(ar[i],m);
    
 
    return 0;
}
void sort(int *a,int n)
{
    int i,j,t;
    for(j=n-1;j>=0;j--)
    {
        for(i=1;i<=j;i++)
        if(a[i-1]>a[i])
        {
            t=a[i-1];
            a[i-1]=a[i];
            a[i]=t;
        }
    }
    
}
void output(int *a, int n)
{
    int i;
    for (i = 0; i < n; i++)
        printf("%3d ", a[i]);
    printf("\n");
}
1
aidamur
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 43
11.04.2017, 21:56  [ТС] 3
эх, для меня этот код слишком сложный, но все же спасибо. постараюсь разобраться.
UPD: вылазит вот это [Error] 'time' was not declared in this scope
0
sidor_01
80 / 80 / 72
Регистрация: 25.02.2017
Сообщений: 175
11.04.2017, 22:14 4
Лучший ответ Сообщение было отмечено aidamur как решение

Решение

Цитата Сообщение от aidamur Посмотреть сообщение
UPD: вылазит вот это [Error] 'time' was not declared in this scope
#include<math.h> замените на #include<time.h>

Добавлено через 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
#include <stdio.h>
 
int main(void)
{
    
    int a[2][4];
    int i, j, z,k;
    printf(" vvedite massiv: \n");
    for (i = 0; i < 2; i++)
    for (k = 0; k < 4; k++)
        scanf("%d", &a[i][k]);
        
        
    for (k = 0; k < 2; k++) 
        for(i=4-1;i>=0;i--)
        for (j = 1; j<=i; j++)
            if (a[k][j-1]>a[k][j]) {
                z=a[k][j-1];
                a[k][j-1]=a[k][j];
                a[k][j]=z;
            }
    
    
    printf("\n otsortirovannyi massiv: \n");
    for (i = 0; i < 2; i++)
    {
    
    for (k = 0; k < 4; k++)
        printf("%d ", a[i][k]);
        printf("\n");
    }
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2017, 22:14

Отсортировать главные диагонали матрицы по возрастанию методом вставки
Дана матрица размерностью nxn, содержащая целые числа. Отсортировать главные...

Упорядочить каждую строку матрицы по убыванию элементов
Дана матрица целых чисел NxM. Упорядочить каждую строку матрицы по убыванию...

Отсортировать по возрастанию элементы той строки матрицы, сумма элементов которой максимальна
Вот само задание: Разработать приложение, выполняющее следующие функции....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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