cpp, заполнение массива процедурой, вопрос/проблема

программирование с++

Вообще такой вопрос, "могу ли я оперировать с массивами задействовав при этом функции/процедуры (к примеру возвращать массив в функции?) или заполнять массив с помощью процедуры?"

проверьте код программы, верно ли тут все? если нет исправьте или предложите свой вариант "заполнения массива через процедуру"
Буду очень благодарен помощи, особенно оперативной (ну мне очень как срочно нужно)


#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;

void in();

int main()
{
int n;
cout<<"Введите размерность массива [NxN]\nN: ";
cin>>n;
int mas[n][n];
in(n, mas[n][n]);
return 0;
}

void in(&n, &mas[n][n])
{
int i;
for (i=1; i<=n; i++)
for (j=1; j<=n; i++)
{
mas[i][j]=rand()%32+1;
cout<<setw(2)<<mas[i][j]<<"\t";
}
}


Примечание:
1. то что пропустил j - не столь важно (исправлю!)
2. не уловил вашу мысль
3. ну и как тогда?

Примечание:
1. iomanip - библиотека: использование манипуляторов в коде; ctime - библиотека: случайная генерация по времени
2. размерность массива указывается пользователем, поэтому она ни как не может быть константой (если я вас не верно понял, то прошу разъяснений:)
3. их не обязательно указывать, т.к. они все задуманы как int, а по умолчанию значение будет и так иметь int
4. я в курсе, что индексы массивов начинаются с 0 по n (здесь, я специально задумал начинать с 1), насчет терминологии я вас не совсем понял

Примечание:
masterpiece6, а ваши думки не верны, вот как =Р
язык я начал учить около 2-х месяцев назад, по своей инициативе (мне было это интересно)
и по себе не судите, не так уж вас много (не знающих, зато с дипломами)

Примечание:
WASSER, а вам большое спасибо, что не стали умничать, а решили мне помочь и написали код:)
тот код, я сам с этим соглашусь, был безумен, даже с точки зрения новичка (меня), но я все же решил что-то этакое замутить:)
к сожалению, к тому времени как вы выложили листинг, я уже написал иной вариант поставленной задачи (без юзинга процедуры), но всё равно вам за это благодарен!
Ответы:
Не взлетит.
вы сначала учебник по срр почитайте, а потом задавайте глупые вопросы, ибо:
1) зачем вам iomanip и ctime?
2) размерность статического массива должна быть константой
3) при объявлении функции нужно указывать типы параметров
4) в С/С++ индексы массивов начинаются с 0 и до n-1 в вашей терминологии функции void in
1. манипуляторы вы здесь не используете. генераторы тоже.
2. если размерность массива указывается пользователем, то нужно либо оценить возможные значения и взять заведомо большее, либо работать с динамическим массивом. во втором случае все понятно. в первом случае при объявлении массива в квадратных скобках должна стоять константа : числовая, именованная - неважно какая, но константа. ПОТОМУ ЧТО У ЯЗЫКА С++ ТАКОЙ СИНТАКСИС.
3. Standard C++ значение по умолчанию не поддерживает. они были введены еще в ANSI C (~1987, точно не помню), а сейчас в некоторых компиляторах остались в наследство для совместимости. ПОТОМУ ЧТО У ЯЗЫКА С++ ТАКОЙ СИНТАКСИС.
4. вам же сказали: с 0 до n-1. это означает, что первый элемент имеет номер 0, второй - 1, третий - 2, ... , последний - (n-1). по-другому не бывает. ПОТОМУ ЧТО У ЯЗЫКА С++ ТАКОЙ СИНТАКСИС.
5. массив по ссылке передавать бессмысленно. а то, что вы сделали, не только бессмысленно, но еще и неправильно. ПОТОМУ ЧТО У ЯЗЫКА С++ ТАКОЙ СИНТАКСИС. ЕСЛИ ХОТИТЕ ПИСАТЬ ТАК КАК ХОЧЕТСЯ, НАПИШИТЕ СВОЙ ЯЗЫК И ПРОГРАММИРУЙТЕ НА НЕМ.
После предыдущих разгромных ответов, мне страшно сюда соваться, ибо я тоже нуб, но попробуйте вот так
2 WASSER : плюсую. вот только он без нулевого элемента получит (n-1)x(n-1) матрицу.
сразу видно, что работаете над собой. продолжайте в том же духе.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.