Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В каждом слове заменить первую букву на прописную http://www.cyberforum.ru/cpp-beginners/thread866026.html
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. В каждом слове заменить первую букву на прописную.Использовать тип (класс) string. string task3(string s,string...
C++ Строки: заменить каждый символ '/' на пару символов ':' Подсчитать количество пар '23' и '45' по отдельности и заменить каждый символ '/' на пару символов ': '. С использование библиотеки string.h void task1(char *s, int &kol1, int &kol2) { ... http://www.cyberforum.ru/cpp-beginners/thread866013.html
C++ Посоветуйте книжку по С++
В общем знаю С++ на уровне создания консольных приложений под windows, хотелось бы научиться программировать с использованием winapi и создавать пользовательские интерфейсы как в visual basic-е. В...
C++ Разбиение множества
срочно нужно решить, помогите пжл. Даются пары элементов и расстояния между ними, разбить множество элементов на классы так чтобы для любой пары из класса расстояние между ними была заданному...
C++ Написать функцию, которая выводит строку, состоящую из одинаковых символов http://www.cyberforum.ru/cpp-beginners/thread865997.html
1.Написать функцию, которая выводит строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами функции.
C++ Проверка входных данных: вызов и обработка исключения Всем привет. Не могу разобраться с проверкой входных данных. Нужно чтобы если я ввел какой либо символ вместо числа возбуждалось исключение. После чего нужно было бы ввести новое число. У меня же... подробнее

Показать сообщение отдельно
Adrug
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 40

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

15.05.2013, 17:00. Просмотров 362. Ответов 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
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru