![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 19.03.2012
Сообщений: 1
Репутация: 0
|
Добрый день.
В общем, есть задание: ![]() Есть код на С++: Код:
#include "windows.h"
#include "stdio.h"
#include "math.h"
#include <algorithm>
using namespace std;
#define MaxNumber 65535//Макс значение, которое могут ввести(мы ограничиваемся размером unsigned int)
int main(){
int N;//Кол-во строк N(отсчёт от 1)
int M;//Кол-во элементов M(отсчёт от 1)
int EditNumber;//Насколько смещаем массив
scanf("%d %d %d",&N,&M,&EditNumber);//вводим например "4 5 2"(как в примере)
int **mass = new int*[N];
for (int i = 0; i < N; i++) mass[i] = new int[M];
/*Записываем в массивы наши числа*/
for(int n=0; n<N;n++){
printf("mass: %d\n",n);
for(int m=0; m<M;m++){
scanf("%d",&mass[n][m]);
}
}
for(int n=0; n<N;n++){
/*Находим id ячейки, где лежат макс и мин значения*/
int max[2]={0,(-1*MaxNumber)};
int min[2]={0,MaxNumber};//min[0] - id ячейки; min[1] - само число
for(int m=0; m<M;m++){
if(mass[n][m]<min[1]){
min[1]=mass[n][m];
min[0]=m;
}
if(mass[n][m]>max[1]){
max[1]=mass[n][m];
max[0]=m;
}
}
/*Сдвигаем если нужно наш массив*/
if((int)fabs((float)(max[0]-min[0]))-1>1)//находим модуль разности и вычитам 1, если больше 1 смещаем массив направо на 2
std::rotate(mass[n],mass[n]+(M-EditNumber),mass[n]+M);
}
/*Выводим массивы*/
printf("======RETURN======");
for(int n=0; n<N;n++){
printf("\nmass:%d = ",n);
for(int m=0; m<M;m++){
printf("%d ",mass[n][m]);
}
}
system("pause");
return 0;
}
Буду очень благодарен. Р.S. Прошу прощения, если оформил не правильно. Добавлено через 1 час 23 минуты Как мне подсказали, вот что нужно сделать исключить Код:
#include <algorithm> using namespace std; Код:
int **mass = new int*[N]; for (int i = 0; i < N; i++) mass[i] = new int[M]; Код:
std::rotate(mass[n],mass[n]+(M-EditNumber),mass[n]+M); Но я не знаю как это сделать. Прошу помочь. |
|
|
|
| Реклама: |
|
|
#2
|
|
Неактивный пользователь
Пол:
Регистрация: 12.04.2015
Сообщений: 1
Репутация: 0
|
Еще бы не мешало расширение файла поставить .c, вместо .cpp. После этого будет куча ошибок, которые Вам придется исправлять. В итоге, после исправления всего, у Вас получится программа на Си.
|
|
|
|
|
|
#3
|
|
Постоялец
![]() ![]() ![]() ![]() ![]() Пол:
Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Код:
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <math.h>
#define MaxNumber 65535//Макс значение, которое могут ввести(мы ограничиваемся размером unsigned int)
int main()
{
int N;//Кол-во строк N(отсчёт от 1)
int M;//Кол-во элементов M(отсчёт от 1)
int EditNumber;//Насколько смещаем массив
int **mass;
int max[2],min[2];
int i,n,m;
scanf("%d %d %d",&N,&M,&EditNumber);//вводим например "4 5 2"(как в примере)
mass = (int**)malloc(N*sizeof(int*));
for (i = 0; i < N; i++)
mass[i] = (int*)malloc(M*sizeof(int));
/*Записываем в массивы наши числа*/
for(n=0; n<N;n++)
{
printf("mass: %d\n",n);
for(m=0; m<M;m++)
{
scanf("%d",&mass[n][m]);
}
}
for(n=0; n<N;n++)
{
/*Находим id ячейки, где лежат макс и мин значения*/
max[0]=0;max[1]=mass[n][0];
min[0]=0;min[1]=mass[n][0];//min[0] - id ячейки; min[1] - само число
for(m=1; m<M;m++)
{
if(mass[n][m]<min[1])
{
min[1]=mass[n][m];
min[0]=m;
}
if(mass[n][m]>max[1])
{
max[1]=mass[n][m];
max[0]=m;
}
}
/*Сдвигаем если нужно наш массив*/
if((int)fabs((float)(max[0]-min[0]))-1>1)//находим модуль разности и вычитам 1, если больше 1 смещаем массив направо на 2
{
for(int m=M-EditNumber-1;m>=0;m--)
mass[n][m+EditNumber]=mass[n][m];
//std::rotate(mass[n],mass[n]+(M-EditNumber),mass[n]+M);
}
}
/*Выводим массивы*/
printf("======RETURN======");
for(n=0; n<N;n++)
{
printf("\nmass:%d = ",n);
for(int m=0; m<M;m++)
printf("%d ",mass[n][m]);
}
getch();
return 0;
}
__________________
Сергей Сергеевич |
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Помогите перевести текст на русский | Frenk | Архив | 6 | 15.01.2013 00:30 |
| Помогите перевести! | kirillsas | Скорая помощь | 4 | 01.09.2009 12:25 |
| Помогите перевести написанное на C# в C++ | sercool | Программирование | 4 | 03.02.2008 23:32 |
| Помогите перевести картинку в другой формат! | rubin7 | Архив | 10 | 07.06.2007 13:35 |
| Помогите перевести 2 страниц с Итальянского | FoxMan | Архив | 9 | 29.06.2006 22:24 |
|
|