С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45

Вывести массив вот так

18.11.2011, 23:03. Показов 797. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
задан массив любой размерности, его нужно сначала мысленно разделить на две части : в нечетных строках слева будут все кроме последнего элемента строки, в четных строках только первый. затем нужно как бы эти две половинки раскрыть и перевернуть на 90 градусов. выглядеть все это должно вот так
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2011, 23:03
Ответы с готовыми решениями:

вот так задачка(((
ввели количество человек к примеру ( 8 человек ); name| last name| year| start number| it number| previous result ...

С++ что не так? (Отсортировать массив методом выбора элементов и вывести)
#include "stdafx.h"; #include "iostream" using namespace std; void main () { setlocale (0, "rus"); cout <<"Легензов...

Вывести массив так, чтобы элементы стояли в порядке возрастания
Приветствую всех. Что-то не могу решить задачку. Посмотрел у вас аналогичную, но я там многих операторов не знаю. Суть задачи: дан...

7
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.11.2011, 04:54
нужно две пары индексов i1, j1 и i2, j2
нужен флаг для переключения между подмассивами
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
19.11.2011, 07:42
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include <iomanip>
using std::setw;
 
int main() {
 
    int **arrPtr1, **arrPtr2;   //обьявление указателя на массив указателей типа int
    int size;           //переменная размера матрицы
    cout << "Enter size of matrix :\n>";
    cin >> size;
 
    arrPtr1 = new int*[size];   //выделение памяти для первого массива указателей
    arrPtr2 = new int*[size];   //выделение памяти для второго массива указателей
 
    for(int i = 0; i < size; ++i){  //заполнения массивов
        arrPtr1[i] = new int[size];
        arrPtr2[i] = new int[size];
    }
 
    for(int i = 0; i < size; ++i){  //инициализация матрицы (заполнение матрицы числами)
        for(int j = 0; j < size; ++j){
                arrPtr1[i][j] = i*size+j+1;
            }
    }
 
    cout << "\nafter arrays initialisation : \n";
    for(int i = 0; i < size; ++i){  //печатаем результат инициализации
        for(int j = 0; j < size; ++j){
                cout << setw(3) << arrPtr1[i][j];
        }
        cout << endl;
    }
 
    for(int i = 0; i < size; ++i){  //"расчесываем" матрицу
        for(int j = 0; j < size; ++j){
            if((i!=0 && (j+1)%2==0) || (i+1 == size)){
                arrPtr2[i][j] = arrPtr1[i][j];
                arrPtr1[i][j] = -1;
            } else {
                arrPtr2[i][j] = -1;
            }
        }
    }
 
    cout << "\n\nresult : \n";
    // следуюзие два цикла печетают две матрицы полученные в результате "расчесывания"
    for(int i = 0; i < size; ++i){
        for(int j = 0; j < size; ++j){
            if(arrPtr1[j][i] == -1) {
                cout << setw(3) << " ";
            } else {
                cout << setw(3) << arrPtr1[j][i];
            }
        }
        cout << endl;
    }
 
 
    for(int i = 0; i < size; ++i){
        for(int j = 0; j < size; ++j){
            if(arrPtr2[j][i] == -1) {
                cout << setw(3) << " ";
            } else {
                cout << setw(3) << arrPtr2[j][i];
            }
        }
        cout << endl;
    }
    cin.get();
    return 0;
}
1
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45
19.11.2011, 10:13  [ТС]
там нужно немного по-другому, нужно чтобы две части массива как бы как книга открывались и на длинные стороны падали. ну как на рисунке я нарисовала
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.11.2011, 10:21
левая часть открывается и падает, а вторая должна не только открываться, но и переворачиваться
естественно, вариант с созданием ещё одной матрицы нежелателен
0
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45
19.11.2011, 11:01  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
левая часть открывается и падает, а вторая должна не только открываться, но и переворачиваться
естественно, вариант с созданием ещё одной матрицы нежелателен
на самом деле меня бы и с созданием еще одной матрицы устроило)
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.11.2011, 12:45
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
58
59
60
61
62
63
#include <stdio.h>
#include <stdlib.h>
 
#include <assert.h>
 
int main(void)
{
    int **matr;
    int rows, cols;
    int i, j, k;
    int j1, j2, flag;
    
    rows = 5;
    cols = 5;
    
    matr = (int **) malloc(rows * sizeof(int *));
    assert(matr && "allocation rows");
    for (i = 0; i < rows; i++) {
        matr[i] = (int *) malloc(cols * sizeof(int));
        assert(matr[i] && "allocation cols");
    }
    
    for (k = i = 0; i < rows; i++)
        for (j = 0; j < cols; j++)
            matr[i][j] = ++k;
    
    for (i = 0; i < rows; i++) {
        for (j = 0; j < cols; j++)
            printf(" %4d", matr[i][j]);
        putchar('\n');
    }
    
    putchar('\n');
    
    j1 = cols - 2;
    j2 = 1;
    flag = 0;
    while (j1 > 0 || j2 < cols - 1)
        if (flag == 0) {
            for (i = 0; i < rows; i += 2)
                printf(" %4d", matr[i][j1]);
            printf("       ");
            j1--;
            flag = 1;
        } else {
            for (i = 1; i < rows - (rows % 2); i += 2)
                printf(" %4d", matr[i][j2]);
            putchar('\n');
            j2++;
            flag = 0;
        }
    for (i = 0; i < rows; i++)
        printf(" %3d", matr[i][0]);
    printf("  ");
    for (i = 0; i < rows; i++)
        printf(" %3d", matr[i][cols - 1]);
    putchar('\n');
    
    for (i = 0; i < rows; i++)
        free(matr[i]);
    free(matr);
    return 0;
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
[guest@localhost tests]$ .ansi t.c -o t
[guest@localhost tests]$ ./t
    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
 
    4   14   24           7   17
    3   13   23           8   18
    2   12   22           9   19
   1   6  11  16  21     5  10  15  20  25
[guest@localhost tests]$
1
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45
19.11.2011, 21:40  [ТС]
Спасибо всем огромное за помощь!
можно удалить эту тему теперь?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2011, 21:40
Помогаю со студенческими работами здесь

Почему тип char не может делать вот так +=
Я хочу из входного текста получить другой текст. Например: ТЕКСТ, а я хочу получить ТСКЕТ то есть предложение или слово только...

Сгенерировать массив. Вывести массив. Найти и вывести max и min значения элементы массива, а так же их индексы
Сгенерировать массив. Вывести массив. Найти и вывести max и min значения элементы массива, а так же их индексы

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

вот часть кода,в который нужно вписать как найти сумму всех положительных элементов и вывести массив
вот часть кода,в который нужно вписать как найти сумму всех положительных элементов и вывести массив &lt;head&gt; &lt;meta...

Вот так вот ! ;)
http://button.dekel.ru а может все-таки стоит попробовать сменить умолчание ? ;D


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru