Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Adrug
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 40
#1

Двумерный массив в одномерный

15.05.2013, 17:00. Просмотров 385. Ответов 5
Метки нет (Все метки)

Задача: двумерный массив N*N преобразовать в одномерный N2.
По особому алгоритму( приложения)
Собственно код написал(пишу для c++ borland)
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
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
 
void main()
  {
   int i,j,k,q,N,M,L,x;
   clrscr();         x=1;
   cout<<"Input N=";
   cin>>N;
   int **a=new int*[N];
   for (i=0;i<N;i++) a[i]=new int[N];
   int *b=new int[N*N];
   cout<<"\n"<<"Cam massive ["<<N<<"]["<<N<<"]\n";
   for (i=0;i<N;i++)
     {
     for (j=0;j<N;j++)
      {
      a[i][j]=x++;
      cout<<a[i][j]<<"          ";
      }
     cout<<endl;
     }
   i=N-1;j=N-1;k=-1;M=N;L=N;
   for (q=0;q<N*N;q++)
     {
      k++;
      b[k]=a[i][j];
      if (i !=0) i--; else {j--; L=L-j;}
      while (i<L-1) {k++;b[k]=a[i][j];j--;i++;}
      k++; b[k]=a[i][j];
      if (j != 0) j--; else {i--;M=M-i+2;}
      while (j<M-1) {k++;b[k]=a[i][j];j++;i--;}
     }
   for (k=0;k<N*N;k++)
       cout<<b[k]<<",";
       delete []b;
  getch();
   }
Проблема в том что массив размерностью 3х3 сортирует правильно.
Массивы большего размера не правильно. При выводе одномерного массива проскакивают числа 3-4 значные. Откуда они берутся понять не могу.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 17:00
Ответы с готовыми решениями:

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка),...

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

Дан двумерный массив размерностью 4*5. Сформировать одномерный массив
Дан двумерный массив размерностью 4*5, заполненный целыми числами с клавиатуры....

Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю.
Дан двумерный массив размером n x n. Сформировать: Одномерный массив из...

Скопировать двумерный массив в одномерный массив из 50 элементов
Создать двумерный массив 10*5, заполнить его значениями ( i^2-j^2), где i и j...

5
Miwa123
37 / 37 / 22
Регистрация: 16.04.2013
Сообщений: 319
Записей в блоге: 1
15.05.2013, 18:08 #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
#include <iostream>
 using namespace std;
int main()
{ 
    const int k=3,j=3,n=k*j;
    int var=0,dvo_arr[k][j],od_arr[n];
    for(int i=0;i<k;i++)
        for(int x=0;x<j;x++)
        {
            cout << "arr[" << i << "][" << x << "]: " ;
            cin >> dvo_arr[i][x];
        }
    for(int i=0;i<k;i++)
        for(int x=0;x<j;x++)
        {
            od_arr[var]=dvo_arr[i][x];
            var++;
        }
    for(int i=0;i<n;i++)
        cout << od_arr[i];
    system("pause");
    return 0;
}
0
Adrug
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 40
15.05.2013, 18:29  [ТС] #3
Miwa123, для особо бестолковых
Цитата Сообщение от Adrug Посмотреть сообщение
По особому алгоритму( приложение)
0
Ev[G]eN
15.05.2013, 18:36
  #4

Не по теме:

Цитата Сообщение от Adrug Посмотреть сообщение
Miwa123, для особо бестолковых
нехорошо оскорблять человека, который пытается помочь..

0
DIEZEL-man
13 / 13 / 5
Регистрация: 17.02.2013
Сообщений: 54
15.05.2013, 18:38 #5
Цитата Сообщение от Adrug Посмотреть сообщение
Miwa123, для особо бестолковых
Особо умные обычно программы сами пишут
0
Adrug
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 40
15.05.2013, 21:03  [ТС] #6

Не по теме:

помощь то в общем никакая, вообще предполагаю что человек скопировал код из соседнего топика.



Добавлено через 9 минут
3 сообщения в теме(не считая моих), а никто полезного не написал.
И я не пытался оскорбить человека, а хотел сказать, что человек торопиться с ответами в погоне за репутацией. Как и я в общем поторопился резко высказавшись в его сторону.

Добавлено через 2 часа 14 минут
Кликните здесь для просмотра всего текста
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
#include <iostream.h>
#include <conio.h>
 
void main()
  {
   int i,j,N,M,L,x,q;
   clrscr();
   cout<<"Input N=";
   cin>>N;
   int **a=new int*[N];
   for (i=0;i<N;i++) a[i]=new int[N];
   int *b=new int[N*N];
   cout<<"\n"<<"Cam massive ["<<N<<"]["<<N<<"]\n"; x=1;
   for (i=0;i<N;i++)   // Zapolnenie massiva
     {
       for (j=0;j<N;j++)  {a[i][j]=x++; cout<<a[i][j]<<"   ";}
       cout<<endl;
     }
     cout<<"****************\n";
   i=N-1;j=i;M=N;L=N;q=-1;
   while (q<N*N)       // preobrazovanie
     {
      q++;
      b[q]=a[i][j];
      if (i==0) j--; else i--;
      while (i<L-1) {if(j-1<0) break;else {q++;b[q]=a[i][j];j--;i++;}}
      q++;
      b[q]=a[i][j];
      if (j==0) i--; else j--;
      while (j<M-1) {if(i-1<0) break;else {q++;b[q]=a[i][j];j++;i--;}}
     }
  for (q=0;q<N*N;q++)    // Output massiva
       cout<<b[q]<<";";
       delete []b;
  getch();
   }

В общем справился сам только кустарным методом. Спасибо всем кто поучаствовал в дискуссии.
0
15.05.2013, 21:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 21:03

Одномерный и двумерный массив.
Всем привет ! Хотелось бы чтоб мне помогли с задачами ! я буду их пробовать...

Двумерный массив в одномерный
Здравствуцте, Есть двумерный массив с отсортированными строками. нужно его...

Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов заданного массива расположенных над главной диагональю.
помогите решить=)Дан двумерный массив размерностью Н. сформировать одномерный...


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

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

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