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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
#1

Переформировать матрицу - C++

15.03.2010, 19:57. Просмотров 796. Ответов 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
class Program {
        static int length = 20;
        static int height = 20;
        static Random r = new Random();
        static double[,] matrix = new double[height, length];
 
        static void swap(ref double a, ref double b) {
                double c = a;
                a = b;
                b = c;
        }
 
        static void print() {
                for (int a = 0; a < height; a++) {
                        for (int b = 0; b < length; b++) {
                                Console.Write(matrix[a, b] + " ");
 
                        }
                        Console.WriteLine();
 
                }
        }
 
        static void Main(string[] args) {
                for (int a = 0; a < height; a++) {
                        for (int b = 0; b < length; b++) {
                                matrix[a, b] = r.Next(10);
                        }
                }
 
                Console.WriteLine("Original:\n");
                print();
 
                
                for(int a=0; a<length; a++) {
                        for(int b=length-1; b>a; b--) {
                                if(matrix[height-1, a] > matrix[height-1, b]) {
                                        for(int i=0; i<height; i++) {
                                                swap(ref matrix[i,a], ref matrix[i, b]);
                                        }
                                }
                        }
                }
 
                Console.WriteLine("\nFormed:\n");
                print();
        }
}
помогите пожалуйста реализовать на Си.

Добавлено через 2 часа 36 минут
тема актуальна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2010, 19:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переформировать матрицу (C++):

Переформировать матрицу - C++
Вот, собственно, такое задание: &quot;Из положительных элементов матрицы N сформировать матрицу M(10, KMAX), располагая их в строках матрицы...

Переформировать текст так, чтобы каждое предложение занимало отдельную строку - C++
Переформировать весь текст так, чтобы каждое предложение занимало отдельную строку. (Признак конца предложения - точка.)

Массив А состоящий из 30 элементов, переформировать так чтобы в начале стояли все неотрицательные значения ... - C++
недавно начал изучать С++ и столкнулся с такой проблемкой.. дан массив А состоящий из 30 элементов, переформировать так чтобы в начале...

Непонятно условие задачи: Вывести исходную матрицу, преобразованную матрицу и вектор Х. - C++
Здравствуйте, помогите пожалуйста понять, что от меня хотят в этом условии: &quot;Строки вещественной матрицы упорядочить по возрастанию ее...

Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке - C++
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке.

Получить матрицу из чисел, заполняющих матрицу по линиям, параллельным главной диагонали - C++
Получить матрицу A=(aij), i,j=1..n, n&lt;=100, элементами которой является ряд натуральных чисел, заполняющих матрицу по линиям параллельным...

1
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
15.03.2010, 20:16 #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
#include <stdio.h>
#include <conio.h>
 
#define H 3
#define W 5
int main(){
    int matrix[H][W] = {
        {3,2,1,2,1},
        {6,5,4,2,1},
        {9,8,7,2,0}
 
    };
int i,j,p,k;
//Переставновка столбцов по возрастанию последних элементов.
for(p=0;p<W-1;p++){
 
    for(k=p+1;k<W;k++){
    if(matrix[H-1][k]<matrix[H-1][p]){
        for(i=0;i<H;i++){
        int tmp = matrix[i][p];     
        matrix[i][p]=matrix[i][k]; 
        matrix[i][k]=tmp;
        }
 
}
 
}
 
 
}
 
//вывод матриц после трансформации.
for(i=0;i<H;i++){
    for(j=0;j<W;j++){
printf(" ");printf(" %d ",matrix[i][j]);
    }
printf("\n");
}
return 0;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2010, 20:16
Привет! Вот еще темы с ответами:

Сформировать квадратную матрицу; транспонировать матрицу и инвертировать порядок элементов каждой ее строки - C++
Заданы два одномерных массива одинаковой длины: R и S.Сформировать квадратную матрицу A, каждый элемент которой, что находится в i-той...

Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки - C++
Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой стрелки

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали - C++
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали

Отсортировать матрицу и снова сделать из нее начальную матрицу - C++
значит условие таково: с клавиатуры вводится ряд чисел, его нужно занести в матрицу 6х6, потом отсортировать матрицу и снова сделать из нее...


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

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

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