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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RussDragon
12 / 12 / 1
Регистрация: 08.04.2012
Сообщений: 81
#1

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

14.04.2013, 21:21. Просмотров 265. Ответов 3
Метки нет (Все метки)

Набросал часть кода за 15 минут.
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
#include <iostream>
 
char* fillarr(char ** str, int len);
 
 
void paintfield()
{
    int count, count2;
    char field[10][10];
for (count = 0; count < 10; count++)
{
    
    
    for (count2 = 0; count2 < 10; count2++)
    {
        std::cout << field[count][count2] << " ";}
    
        std::cout << std::endl;
    
}
    }
 
 
char* fillarr(char * str, int len)
{
    
    for(int i = 0; i < len; i++)
    {
        
        for (int c = 0; c < len; c++)
            str[i][c] = ".";
        
    }
    
    
    return str;
}
Честно говоря, я не понимаю, где ошибка в функции fillarr.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 21:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный массив (C++):

Как можно вложить двумерный массив в двумерный? - C++
Нужно написать программу перемножения двух матриц размерностью МxМ, элементы которых, матрицы размерностью КxК... Подскажите (желательно с...

Массив: Как скопировать двумерный массив в другой массив? - C++
Как скопировать двумерный массив в другой массив?

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Массив: Как можно задать и вывести симметричный двумерный массив? - C++
как можно задать и вывести симметричный массив

Чем отличаются двумерный символьный массив и массив указателей на строки - C++
Двумерный символьный массив и массив указателей на строки. Собственно чем они отличаются? Заранее спасибо.

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы. - C++
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения. Дан двумерный массив 3х3.Получить...

3
Ласковая Киса
82 / 8 / 1
Регистрация: 11.01.2013
Сообщений: 55
14.04.2013, 21:46 #2
Цитата Сообщение от RussDragon Посмотреть сообщение
Набросал часть кода за 15 минут.
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
#include <iostream>
 
char* fillarr(char ** str, int len);
 
 
void paintfield()
{
    int count, count2;
    char field[10][10];
for (count = 0; count < 10; count++)
{
    
    
    for (count2 = 0; count2 < 10; count2++)
    {
        std::cout << field[count][count2] << " ";}
    
        std::cout << std::endl;
    
}
    }
 
 
char* fillarr(char * str, int len)
{
    
    for(int i = 0; i < len; i++)
    {
        
        for (int c = 0; c < len; c++)
            str[i][c] = ".";
        
    }
    
    
    return str;
}
Честно говоря, я не понимаю, где ошибка в функции fillarr.
Если Вы хотите возвращать функцией fillarr двумерный массив, тогда нужно после char поставить вторую звёздочку.
C++
1
char** fillarr(char ** str, int len)
Еще в этой строке
C++
1
str[i][c] = ".";
Вы присваиваете ячейке массива char-ов строку. Правильнее будет написать
C++
1
str[i][c] = '.';
1
RussDragon
12 / 12 / 1
Регистрация: 08.04.2012
Сообщений: 81
14.04.2013, 22:03  [ТС] #3
Точно! Спасибо! Про кавычки я совсем забыл.

Добавлено через 5 минут
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
char* fillarr(char ** str, int len);
 
 
void paintfield()
{
    int count, count2;
    char field[10][10];
    fillarr(field, 10 );
for (count = 0; count < 10; count++)
{
    
    
    for (count2 = 0; count2 < 10; count2++)
    {
        std::cout << field[count][count2] << " ";}
    
        std::cout << std::endl;
    
}
    }
 
 
char* fillarr(char ** str, int len)
{
    
    for(int i = 0; i < len; i++)
    {
        
        for (int c = 0; c < len; c++)
            str[i][c] = '.';
        
    }
    
    
    return *str;
}
Теперь painfield пишет, что нету вызываемой функции с именем fillarr
0
Ласковая Киса
82 / 8 / 1
Регистрация: 11.01.2013
Сообщений: 55
14.04.2013, 22:27 #4
У меня нормально всё работает
Только вот у Вас char [10][10] не преобразует в char **
Если хотите создать динамический двумерный массив,то скорее так:
C++
1
2
3
4
    char**field;
    field=new char*[10];
    for(int a=0;a!=10;a++)
        field[a]=new char[10];
0
14.04.2013, 22:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2013, 22:27
Привет! Вот еще темы с ответами:

Дан двумерный массив размерностью 4*5. Сформировать одномерный массив - C++
Дан двумерный массив размерностью 4*5, заполненный целыми числами с клавиатуры. Сформировать одномерный массив каждый элемент которого...

Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива - C++
Дан двумерный массив , создать другой массив ,строками которого будут диагонали первого массива, решить с помощью классов . Класс...

Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю. - C++
Дан двумерный массив размером n x n. Сформировать: Одномерный массив из элементов заданного массива, расположенных под побочной...

Скопировать двумерный массив в одномерный массив из 50 элементов - C++
Создать двумерный массив 10*5, заполнить его значениями ( i^2-j^2), где i и j итераторы двумерного массива. А затем скопировать двумерный...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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