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

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

Восстановить пароль Регистрация
 
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
15.03.2010, 19:57     Переформировать матрицу #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 минут
тема актуальна.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2010, 19:57     Переформировать матрицу
Посмотрите здесь:

Переформировать матрицу C++
Массив А состоящий из 30 элементов, переформировать так чтобы в начале стояли все неотрицательные значения ... C++
C++ Заполнить матрицу случайными числами. Развернуть матрицу на 90(градусов) против часовой стрелки
Получить матрицу из чисел, заполняющих матрицу по линиям, параллельным главной диагонали C++
Сформировать квадратную матрицу; транспонировать матрицу и инвертировать порядок элементов каждой ее строки C++
Заполнить матрицу случайными числами. Вернуть матрицу на 90o по часовой стрелке C++
C++ Непонятно условие задачи: Вывести исходную матрицу, преобразованную матрицу и вектор Х.
C++ Переформировать текст так, чтобы каждое предложение занимало отдельную строку

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 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;
}
Yandex
Объявления
15.03.2010, 20:16     Переформировать матрицу
Ответ Создать тему
Опции темы

Текущее время: 01:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru