Форум: Форум C++Разное
Новые темы: 00
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите решить задачу
 
 автор: victoriy   (19.05.2018 в 22:08)   письмо автору
 
 

Пожалуйста, помогите решить задачу в С++: В заданной прямоугольной матрице с количеством столбцов 2n переставить столбцы в следующем порядке: 1, 2n, 2, 2n-1, 3, 2n-2,...n,n+1. Например, в матрице с шестью столбцами итоговый порядок столбцов должен быть следующим: 1,6,2,5,3,4. Заранее благодарна.

  Ответить  
 
 автор: Irinala   (11.11.2019 в 14:14)   письмо автору
 
   для: victoriy   (19.05.2018 в 22:08)
 

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

  Ответить  
 
 автор: Irinala   (11.11.2019 в 14:16)   письмо автору
 
   для: Irinala   (11.11.2019 в 14:14)
 

Как вараинт


Решение

C++

#include <iostream>
#include <ctime>
#include <cstdlib>
int main(){
const int size=10;
int A[size][size];
srand(time(NULL));
for (int i=0; i<size; i++){
for (int j=0; j<size; j++)
{
A[i][j]=rand()%10;
std::cout<<A[i][j]<<' ';
}
std::cout<<std::endl;
}
std::cout<<"modified array:\n";
for (int i=0; i<size; i++){
int max=0;
for (int j=1; j<size; j++)
if (A[i][j]>A[i][max])
max=j;
int temp=A[i][i];
A[i][i]=A[i][max];
A[i][max]=temp;
for (int j=0; j<size; j++)
std::cout<<A[i][j]<<' ';
std::cout<<std::endl;
}
}

  Ответить  
 
 автор: Irinala   (11.11.2019 в 14:22)   письмо автору
 
   для: victoriy   (19.05.2018 в 22:08)
 

Ну или сложней немного но более удобный для дальнейшего

C++

#include <iostream>

int get_idx_max(int *a, int sz){
int res = 0;
for(int i = 0; i < sz; ++i)
if(a[res] < a[i])
res = i;
return res;
}

void swap(int &a, int &b){
int t = a;
a = b;
b = t;
}

int main(){
int m[3][3] = {
1, 2, 3,
4, 5, 6,
7, 9, 8
};
for(int i = 0; i < 3; ++i){
swap(m[i][get_idx_max(m[i], 3)], m[i][i]);
}
for(int i = 0; i < 3; ++i){
for(int j = 0; j < 3; ++j)
std::cout << m[i][j] << ' ';
std::cout << '\n';
}
return 0;
}

Если это не подойдет то тогда надо искать кодера C++ который работает непосредствно с разработками простых матриц. Это несколько спецефичная тематика и не сильно часто применимая в повседневых работах. Так что спасибо и удачи. Я занят пока и аренда яхт и катеров если интересует то обращайтесь. Надо иногда отдыхать от работы

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования