Другие языки программирования и технологии

Помогите разобраться в чём проблема!!! С++

Задание такое: Создать массив, состоящий из n элементов, и заполнить его числами любым способом (кроме ввода с клавиатуры ...мы его уже прошли...). Нашла на одном сайте такую штуку: //Одномерный массив #include <iostream> #include <iomanip> using namespace std; int main() { //объявляем массив из 8-ми элементов int array[8]; //инициализируем массив данными по формуле for(int i = 0; i < 8; i++) array = i * 2 - 1; //выводим массив на экран for(int i = 0; i < 8; i++) cout << setw(3) << array; return 0; } Смотрю, похоже на то, что мне нужно... нужно только поменять конкретные размеры массива на неопределённое n. Вот что я попыталась сделать: #include <iostream> #include <iomanip> using namespace std; int main() { int n, mas[n]; cout << "Enter n: "; cin >> n; for(int i = 0; i < n; i++) mas = i * 3 - 6; for(int i = 0; i < n; i++) cout << setw(3) << mas; return 0; } Начинаю компиллировать... Ошибок не находит.. но когда начинает строить его....ВЫдаёт окошко с крокозябрами и одной кнопкой Ок... А сама консоль остаётся пустой.. пишет только вот что: Process returned -1073741571 (0xC00000FD) execution time : 1.188 s Press any key to continue. Что делать????Где я ошиблась??? Помогите, пожалуйста!!!!
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
int n, *mas;

cout << "Enter n: ";
cin >> n;

mas = new int[n];

for(int i = 0; i < n; i++)
mas[ i ] = i * 3 - 6;

for(int i = 0; i < n; i++)
cout << setw(3) << mas[ i ];

delete [] mas;
return 0;
}
Евгений Коденко
Евгений Коденко
1 320
Лучший ответ
>Что делать??? ?
Почитать что-нибудь умное про динамические массивы и работу с кучей.
>Где я ошиблась?? ?
Не читала ничего умного про динамические массивы и работу с кучей.
Сергей Матвеев
Сергей Матвеев
98 012
// Использование динамического массива
#include <iostream>
#include <conio.h>
#include <iomanip>

using namespace std;

void main()
{
int n;

cout << "Input n: ";
cin >> n;

int *Array = new int[n];

for (int m = 0; m < n; m++)
Array[m] = m * 3 - 6;

for (int m = 0; m < n; m++)
cout << setw(3) << Array[m];

_getch();
delete[]Array;
}
Jahongir Haqnazarov
Jahongir Haqnazarov
65 812
Просто надо воспользоваться динамическим массивом!
int* mas=new int[n];
В конце программы освободить память
delete [] mas
Что за компилятор такой, что разрешает компилировать неправильные даже с точки зрения синтаксиса программы? Срочно на помойку его
Glebov Vladimir
Glebov Vladimir
22 045
Ты создаешь массив длинной n:
mas[n];
При этом n у тебя не определено.
Странно, что оно вообще у тебя компилировалось.
Задай размер массива заранее очень большим. например mas[1000].
Или учись динамически выделять память.
Arslan Kadirhodzaev
Arslan Kadirhodzaev
4 505