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

Полное правильное описание двумерного массива - C++

Восстановить пароль Регистрация
 
artyrka94
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 15
13.09.2012, 20:02     Полное правильное описание двумерного массива #1
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void vvod(int [][6], int, int);
void vvod(int f[][6], int n, int m)
{
     srand(time(0));
     for(int i=0; i<n; i++)
     for(int j=0; i<m; j++)
     f[i][j]=1+rand()%9;
}
int k[5][5], t[6][6];
main()
{
      vvod(t,6,6);
      vvod(k,5,5);
}
кто сможет изменить весь этот код правильно чтоб он компилился.. а то я так и не допру что не так((

Ошибка: cannot convert `int (*)[5]' to `int (*)[6]' for argument `1' to `void vvod(int (*)[6], int, int)'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2012, 20:02     Полное правильное описание двумерного массива
Посмотрите здесь:

описание двумерного массива C++
C++ Правильное удаление двумерного динамического массива ( нужен ли delete[] array )
C++ Правильное выдиление динамической памяти для двумерного массива
Функции двумерного массива. Транспонировать матрицу через ввод вывод функции двумерного массива. C++
ЕГЭ. С4, С2 - обработка массива - правильное выделение памяти C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
13.09.2012, 20:06     Полное правильное описание двумерного массива #2
Цитата Сообщение от artyrka94 Посмотреть сообщение
void vvod(int f[][6], int n, int m)
Функция принимает массив, у которого 6 столбцов. А вот здесь:
Цитата Сообщение от artyrka94 Посмотреть сообщение
vvod(k,5,5);
Вы передаете в эту функцию массив у которого только 5 столбцов. Думаю в этом ошибка
yekka
384 / 148 / 8
Регистрация: 12.05.2011
Сообщений: 450
13.09.2012, 20:07     Полное правильное описание двумерного массива #3
да без проблем!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
 
template <int N>
void vvod(int f[][N], int n, int m)
{
     srand(time(0));
     for(int i=0; i<n; i++)
     for(int j=0; i<m; j++)
     f[i][j]=1+rand()%9;
}
int k[5][5], t[6][6];
int main()
{
      vvod(t,6,6);
      vvod(k,5,5);
}
artyrka94
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 15
13.09.2012, 20:39  [ТС]     Полное правильное описание двумерного массива #4
Цитата Сообщение от Intel~lect Посмотреть сообщение
Функция принимает массив, у которого 6 столбцов. А вот здесь:

Вы передаете в эту функцию массив у которого только 5 столбцов. Думаю в этом ошибка
Просто у меня в лекции написано что если я описываю в функции матрицу то должен указать максимальное число столбцов поэтому я поставил 6..

Добавлено через 1 минуту
Цитата Сообщение от yekka Посмотреть сообщение
да без проблем!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
 
template <int N>
void vvod(int f[][N], int n, int m)
{
     srand(time(0));
     for(int i=0; i<n; i++)
     for(int j=0; i<m; j++)
     f[i][j]=1+rand()%9;
}
int k[5][5], t[6][6];
int main()
{
      vvod(t,6,6);
      vvod(k,5,5);
}
а прототип функции писать не надо??:
C
1
void vvod(int [][6], int, int);
Добавлено через 17 минут
yekka, реально чувак все работает) спасибо! +1 тебе))
yekka
384 / 148 / 8
Регистрация: 12.05.2011
Сообщений: 450
13.09.2012, 20:39     Полное правильное описание двумерного массива #5
Цитата Сообщение от artyrka94 Посмотреть сообщение
а прототип функции писать не надо??
пиши, если хочешь,
но вообще не обязательно, если у тебя вся программа в одном файле.
artyrka94
1 / 1 / 0
Регистрация: 10.09.2012
Сообщений: 15
13.09.2012, 21:12  [ТС]     Полное правильное описание двумерного массива #6
Цитата Сообщение от yekka Посмотреть сообщение
пиши, если хочешь,
но вообще не обязательно, если у тебя вся программа в одном файле.
Понятно) если в раздельных то тогда пишу так
C
1
void vvod(int [][N], int, int);
Yandex
Объявления
13.09.2012, 21:12     Полное правильное описание двумерного массива
Ответ Создать тему
Опции темы

Текущее время: 01:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru