Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 8
1

Матрицы в массиве (поменять j столбец с i строчкой)

09.02.2022, 14:59. Показов 421. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пересмотрел похожие перестановки, но не с столбцом/строкой и не пойму как мне сделать именно то, что требуется у меня в задание. Буду рад помощи с комментариями.

Дана квадратная матрица NxN (0 < N <= 99), в которой нужно скопировать j-ый столбец (0 <= j < N) и поставить в i-ую строчку (0 <= i < N), то есть первый элемент данного столбца, стоящий в крайнем верхнем положении A[0][j], нужно поставить в крайнее левое положение i-ой строки: A[i][0], и так далее.

Порядок входных данных фиксирован: сначала строка с числом N – размер матрицы, затем строка с числами i и j (через пробел), далее - сама матрица, построчно, элементы разделены одним пробелом.
Выводить матрицу в таком же виде.

Ограничения: В программе матрица должна считываться в память и храниться в одномерное массиве.
Обращения к элементам массива НЕ должны выполняться с помощью операции индексации: V[i], A[i][j].
Вместо этого обращения к элементам массива должны проводиться ТОЛЬКО через арифметику указателей, например *(A + k), где A - адрес начала массива, k - смещение.
Ограничения: Вещественную арифметику и math.h не использовать. Целочислинные типы данных, большие чем int / unsigned int, не использовать.
Пример для проверки:
Ввод:
3
0 0
1 2 3
4 5 6
7 8 9
Вывод:
1 4 7
4 5 6
7 8 9
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2022, 14:59
Ответы с готовыми решениями:

Поменять в массиве местами первый столбец и столбец с минимальным положительным элементом
создать и вывести массив 5*6 целых чисел и диапазона . поменять в массиве местами первый столбец и...

Поменять местами столбец с максимальным элементом и первый столбец матрицы
ввести двухмерный массив 3*5.Поменять местами столбец с максимальным элементом и первый столбец...

Поменять местами 1 столбец матрицы и столбец, содержащий максимальное количество нулевых элементов
2. Дана матрица целых чисел размера NxN, N = 5. Элементы матрицы – случайные числа из диапазона от...

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

4
Модератор
Эксперт функциональных языков программированияЭксперт Python
37331 / 20763 / 4275
Регистрация: 12.02.2012
Сообщений: 34,168
Записей в блоге: 14
09.02.2022, 19:26 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
 
int getByIndex(int *arr, int size, int row, int col)
{
    return *(arr+row*size+col);
}
 
void putByIndex(int *arr, int size,int row, int col, int val)
{
    *(arr+row*size+col)=val;
}
 
int main()
{
    int x[10][10]={0};
    int *px = (int *) &x; 
    int row,col,ii,ci,ri;
    
    // Заполнение матрицы
    
    for (int i=0; i<10; i++)
        for (int j=0; j<10; j++)
            putByIndex(px,10,i,j,i*i-j*j);
            
    // Печать исходной матрицы
    
    for (int i=0; i<10; i++)
    {
        for (int j=0; j<10; j++) printf("%4d",getByIndex(px,10,i,j));
        printf("\n");
    }
    
    printf("\nrow=");
    scanf("%d",&row);
    printf("col=");
    scanf("%d",&col);
    printf("\n");
 
    ii=0;
    while (ii<10)
    {
        ci=getByIndex(px,10,ii,col);
        ri=getByIndex(px,10,row,ii);
        putByIndex(px,10,ii,col,ri);
        putByIndex(px,10,row,ii,ci);
        ii++;
    }
 
    // Печать результата матрицы
    
    for (int i=0; i<10; i++)
    {
        for (int j=0; j<10; j++) printf("%4d",getByIndex(px,10,i,j));
        printf("\n");
    }
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 8
09.02.2022, 19:45  [ТС] 3
Спасибо, с перестановкой стало всё куда яснее, но с заполнением матрицы все равно не понимаю, мне нужно самому указать как размер матрицы, так и её заполнить вручную для проверки. т.е. нужна возможность построчно указать элементы.
Вот, ещё раз условие: "Сначала строка с числом N – размер матрицы, затем строка с числами i и j (через пробел), далее - сама матрица, построчно, элементы разделены одним пробелом. "
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37331 / 20763 / 4275
Регистрация: 12.02.2012
Сообщений: 34,168
Записей в блоге: 14
09.02.2022, 22:40 4
Ты уж, голубчик, сам доработай. Если матрица 90*90, то в моем коде везде можно 90 подставить вместо 10. Или (еще лучше) объявить именованную константу.

Добавлено через 39 секунд
Я матрицу заполнил программно (не хотел возиться)
1
0 / 0 / 0
Регистрация: 08.11.2018
Сообщений: 8
09.02.2022, 23:54  [ТС] 5
Именованную константу загулил, спасибо за наводку.
0
09.02.2022, 23:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2022, 23:54
Помогаю со студенческими работами здесь

Поменять местами столбец матрицы с наибольшей суммой элементов и заданный столбец (результат не выводится)
Задана матрица произвольной размерности. Поменять местами столбец матрицы, имеющий наибольшую сумму...

Поменять местами первый столбец и столбец, где находится максимальный элемент матрицы (C# -> Java)
Дан двумерный массив вещественных чисел из 4 столбцов и 3 строк. Поменять местами первый столбец и...

В матрице из вещественных чисел поменять местами последний столбец и столбец, содержащий минимальный элемент матрицы
В заданной матрице из вещественных чисел поменять местами последний столбец и столбец, содержащий...

Поменять местами столбцы матрицы: столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы.
В матрице, состоящей из положительных действительных чисел поменять местами два столбца: столбец,...

В двухмерном массиве первый столбец поменять местами с последним столбцом, второй столбец с предпоследним столбцом и так далее
1. Ввести двухмерный массив поэлементно с помощью клавиатуры или получить его, используя генератор...

Поменять местами столбец матрицы A, в котором имеется хотя бы одно простое число, со строкой матрицы B
Меняются местами столбец матрицы A, в котором имеется хотя бы одно простое число, со строкой...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru