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

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

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

Author24 — интернет-сервис помощи студентам
задан массив любой размерности, его нужно сначала мысленно разделить на две части : в нечетных строках слева будут все кроме последнего элемента строки, в четных строках только первый. затем нужно как бы эти две половинки раскрыть и перевернуть на 90 градусов. выглядеть все это должно вот так
Вывести массив вот так
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2011, 23:03
Ответы с готовыми решениями:

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

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

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

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

7
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.11.2011, 04:54 2
нужно две пары индексов i1, j1 и i2, j2
нужен флаг для переключения между подмассивами
0
278 / 173 / 21
Регистрация: 10.07.2011
Сообщений: 441
19.11.2011, 07:42 3
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  [ТС] 4
там нужно немного по-другому, нужно чтобы две части массива как бы как книга открывались и на длинные стороны падали. ну как на рисунке я нарисовала
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.11.2011, 10:21 5
левая часть открывается и падает, а вторая должна не только открываться, но и переворачиваться
естественно, вариант с созданием ещё одной матрицы нежелателен
0
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 45
19.11.2011, 11:01  [ТС] 6
Цитата Сообщение от accept Посмотреть сообщение
левая часть открывается и падает, а вторая должна не только открываться, но и переворачиваться
естественно, вариант с созданием ещё одной матрицы нежелателен
на самом деле меня бы и с созданием еще одной матрицы устроило)
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.11.2011, 12:45 7
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;
}
Код
[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  [ТС] 8
Спасибо всем огромное за помощь!
можно удалить эту тему теперь?)
0
19.11.2011, 21:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2011, 21:40
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru