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

Создать уникальный двумерный массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить сумму отрицательных элементов массива, которые делятся на 5 и индексы которых есть нечетные числа http://www.cyberforum.ru/cpp-beginners/thread1020337.html
Вычислить сумму отрицательных элементов массива, которые делятся на 5 и индексы которых есть нечетные числа.
C++ Файл. Подстрока из цифр Требуется определить строки файла, содержащие максимальную по длине подстроку, состоящую только из цифр. Если таких строк несколько, вывести первые 10. Вот мой код... Выдаёт неверный результат, если... http://www.cyberforum.ru/cpp-beginners/thread1020334.html
C++ Перевод из десятичной в Римскую
Дали курсовую , сдавать уже на днях. Может кто знает как делать? Написать программу перевода чисел из десятичной системы счисления в Римскую.исходное число считывается из одного файла, а...
Найти первую последовательность максимальной длины в массиве C++
Делал задачку: ввод одномерного массива из n целых чисел (1<=n<=100); Найти 1-ю последовательность максимальной длины масива; вывод результата выполнения операции. Вот что я написал, но...
C++ Не могу найти ошибку http://www.cyberforum.ru/cpp-beginners/thread1020313.html
Задача: вывести элементы массива, которые повторяются ровно 2 раза #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv) { setlocale (LC_ALL,...
C++ Задан текст. Определить количество слов, в которых встречается буква вводимая с клавиатуры Доброго времени суток. Помогите написать программу, пожалуйста. Заранее большое спасибо. подробнее

Показать сообщение отдельно
Flinky
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 2

Создать уникальный двумерный массив - C++

27.11.2013, 00:06. Просмотров 482. Ответов 2
Метки (Все метки)

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


Начал с самого начала


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
#include <iostream>
#include <ctime>
#include <stdio.h>
 
using namespace std;
 
int main()
{
 //   int z,x;
    int min =0;
    int max =0;
    srand(time(NULL));
    const int n = 8; 
    int sum = 0;
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [n]; // Создаем элементы
    }
    for (int i = 0; i <n && (i-1) != i; i++)
    {
        for (int j = 0; j < n && (j-1) != j; j++)
        {
            a[i][j] = rand() % 64;
            cout << a[i][j] << " "; 
        }
        cout << endl;
    }
    // Считаем минимальный и максимальный
    min = a[0][0];// берем самый первый элемент массива и считаем, что он минимальный.
    max = a[0][0];// и он же максимальный. 
 
 
//Вот именно тут я пытался сделать уникальность,проверка,чтоб предыдущий элемент не был равен последующему,вот она и не работает.
Думаю не обойтись без дополнительных циклов(так,дай подумать!или опять же разложить массив в одномерный размером в 8*8=64),но не могу понять как это обработать. 
    for (int i = 0; i < n && i != (i+1); i++)
    {
        for (int j = 0; j < n && j != (j+1); j++)
        {
            if (a[i][j] < min) min = a[i][j];
            //{
            //z=i;x=j;
        //  }
            if (a[i][j] > max) max = a[i][j];
        }
    }
    //cout << "z="<<z<<endl<<"  x="<<x<<endl;
    cout << "min = " << min << endl << "max = " << max << endl;
    // Удаление массива
    for (int i = 0; i < n; i++)
    {
        delete[]a[i]; 
    }
    delete [] a; 
    system("pause");
    return 0;
}
Дальше найду индексы мин и макс значений в массиве,определю размерность нового "прямоугольного" масива(на фотке обозначено как e и q),создам одномерный массив из (q*e)элементов,разложу туда получившийся
"прямоугольник" по строкам.В этом одномерном массиве уже отсортирую элементы(по возрастанию) и занесу обратно в "прямоугольник.

//мой прямоугольник
int *arr[e*q]=new int; // одномерный массив
...
for (int i=0;i<e;i++)
for (int j=0;j<q;j++);
arr[i*q+j]=mass[i][j];//Тут подкоментирую.Первый элемент у нас с индексами i j [0][0] (заносим их в первый элемент одномерного массива arr[0*0+0] ) так же с элементом [0][1],[0][2]...[5][4],как-то так
ладно,пока это только теория.

А пока надо сделать первоначальный массив(который 8*8) уникальным,может у кого есть догадки с этим?
Прикладываю фотку,моих "рассуждений"

https://pp.vk.me/c408519/v408519363/441b/5NSQPRQu6ks.jpg
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru