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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поменять местами два элемента в списке http://www.cyberforum.ru/cpp-beginners/thread796652.html
помогите доработать программу! Нужно сделать что бы менял два элемента в списке местами #include <iostream> #include <time.h> using namespace std; struct TNode { int value; TNode* pnext; }; ...
C++ Непонятная ошибка с вектором Пишу в VS ultimate 2012 Сам код: #include <iostream> #include <vector> using namespace std; int main() { setlocale(LC_ALL,"Rus"); vector<int> v; http://www.cyberforum.ru/cpp-beginners/thread796649.html
Строки: определить число символов, заключенных в скобки C++
#include <iostream> #include <clocale> #include <string.h> #include <stdio.h> using namespace std; int main() { setlocale(LC_ALL, "Russian");
удаление пробелов C++
предложите 2 варианта функции, удаляющей из строки ведущие и концевые пробелы
C++ Найти сумму через цикл http://www.cyberforum.ru/cpp-beginners/thread796628.html
Что здесь неправильно? #include <iostream> #include <conio.h> #include <clocale> #include <math.h> using namespace std; int main() { int n;
C++ Вставить элемент с заданным значением в заданный диапазон Посоны, а она никак не хочет вставится!!:(Помогите пожалуйста, может что то не так в коде пишу #include <iostream.h> #include <stdlib.h> #include <conio.h> main() {clrscr(); struct node ... подробнее

Показать сообщение отдельно
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
27.02.2013, 23:58
в Си и С++ статический двумерный массив эквивалентен одномерному, в котором двумерный массив хранится по строкам, т.о. и организована работа в вашей программе

Добавлено через 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
#include <stdio.h>
#include <stdlib.h>
void in_mas(int *, int);
void pr_mas(int *, int);
void solve_mas(int *, int);
int main(void) {
    const int size = 7;
    int mas[size][size];
    int *p = &mas[0][0];
    in_mas(p, size);
    pr_mas(p, size);
    solve_mas(p, size);
    pr_mas(p, size);
    /* printf("\n%d", *(*(mas+i)+j)); */
    p = NULL;
    return EXIT_SUCCESS;
}
void pr_mas(int *a, int size) {
    int i = 0, j = 0;
    printf("\n");
    for (i = 0; i < size; ++i) {
        for (j = 0; j < size; ++j)
            printf("%4d", a[i * size + j]);
        printf("\n");
    }
}
void in_mas(int *a, int size) {
    int i = 0, j = 0;
    for (i = 0; i < size; ++i) {
        for (j = 0; j < size; ++j)
            a[i * size + j] = rand() % 10;
    }
}
void solve_mas(int *a, int size) {
    int i = 0, j = 0;
    for (i = 0; i < size; ++i) {
        for (j = 0; j < size; ++j)
            if ((j >= i && j >= size - i - 1) || (j <= i && j <= size - i - 1))
                //a[i * size + j] = -1;
                //*(a + i * size + j) = -1;
                *(a+i*size+j)=-2;
    }
}


Добавлено через 1 минуту
если массив прямоугольный просто передавать два размера в функцию и внешний цикл о числу элементов в строке
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru