Тема: Двовимірний динамічний масив(С++(вийшов за межі масиву))
⦁ Створити двовимірний динамічний масив трикутної форми1:
ось весь код
а ось місьця де можливо вийшов за межі масиву
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Двовимірний динамічний масив(С++(вийшов за межі масиву))
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
⦁ Створити двовимірний динамічний масив трикутної форми1:
ось весь код
а ось місьця де можливо вийшов за межі масиву
добре що це підсумкова по двовимірним масивам і більше не буду їх вчити(надіюсь) дальше стрічки підуть
ось ще код де вже немає помилки а компілюється
але всерівно одного знизу невистачає
а так
1 рядка зверху невистачає, здається недойшов тепер в масивне вийшов а недойшов
якщо ввести 4 то працює а якщо ввести 5 то видає помилку
здається рядочком не дойшов а не сповпцем але точно не впевнений
тепер кількість елементів добра але останій стовпець неправильні елементи виводить так ніби вийшов за межі масиву
тут при 4 і менше може правильно працювати а може помилка появитись а при 5 і більше тільки помилка
якщо ввести 3 і менше рядка то все ідеально працює а якщо 4 то може працювати добре а може помилка появитись а при 5 і більше тільки помилка
добре що це підсумкова по двовимірним масивам і більше не буду їх вчити(надіюсь) дальше стрічки підуть
Погано, що ви не будете їх вчити(надієтесь), бо дальше стрічки підуть і вам доведеться працювати з багатовимірними масивами.
#include <iostream>
#include <iomanip>
#include <time.h>
using namespace std;
typedef int (*funcPtr)(int const);
int **allocArray2Dtriangle(int const);
void printArray1D(ostream &, int const *const, int const);
void printArray2Dtriangle(ostream &, int const *const *const, int const);
void initArray1D(int *const, int const, const funcPtr);
void initArray2Dtriangle(int *const *const, int const, funcPtr (*const)(int const));
void main() {
setlocale(LC_ALL, "ukr");
srand((unsigned int)time(0));
int rowsCount;
cout << "Введiть кiлькiсть рядкiв: ";
cin >> rowsCount;
int **arr = allocArray2Dtriangle(rowsCount);
initArray2Dtriangle(arr, rowsCount, [](int const){
return [](int const) {
return rand() % 101 - 50;
};
});
printArray2Dtriangle(cout, arr, rowsCount);
system("pause");
}
int **allocArray2Dtriangle(int const len) {
int **arr = new int*[len];
for(int i(0); i < len; ++i)
arr[i] = new int[i + 1];
return arr;
}
void printArray1D(ostream &out, int const *const arr, int const len) {
for(int i(0); i < len; ++i)
out << setw(5) << arr[i];
}
void printArray2Dtriangle(ostream &out, int const *const *const arr, int const len) {
for(int i(0); i < len; ++i) {
printArray1D(out, arr[i], i + 1);
out << endl;
}
}
void initArray1D(int *const arr, int const len, const funcPtr initFunc) {
for(int i(0); i < len; ++i)
arr[i] = initFunc(i);
}
void initArray2Dtriangle(int *const *const arr, int const len, funcPtr (*const initFunc)(int const)) {
for(int i(0); i < len; ++i)
initArray1D(arr[i], i + 1, initFunc(i));
}
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися