@dangor266

Почему вместо элементов динамического массива выводиться мусор, а некоторые элементы вообще не выводяться?

#include<iostream>


using namespace std;

int main()
{
	setlocale(LC_ALL, "ru");

	int k, m, n;
	int arrayType;

	cout << "Введите размер первого массива:" << endl;
	cin >> k;
	cout << endl << "Введите размер второго массива:" << endl;
	cin >> m;
	cout << endl << "Введите размер третьего массива:" << endl;
	cin >> n;

	cout << endl << "Введите значение типа массива:" << endl;
	cout << endl << "0 - float";
	cout << endl << "1 - int" << endl << endl;
	cin >> arrayType;
	if (arrayType)
	{
		cout << endl << "int" << endl;
		int* array1 = new int[k];
		int* array2 = new int[m];
		int* array3 = new int[n];

		int i = 0;
		while(i < k)
		{
			cout << "Введите значение элемента первого массива под индексом " << i <<  ": " << endl;
			cin >> array1[i];
			i++;
		}
		cout << endl;

		i = 0;
		while (i < m)
		{
			cout << "Введите значение элемента второго массива под индексом " << i <<  ": " << endl;
			cin >> array2[i];
			i++;
		}
		cout << endl;

		i = 0;
		while (i < n)
		{
			cout << "Введите значение элемента третьего массива под индексом " << i << ": " << endl;
			cin >> array3[i];
			i++;
		}
		cout << endl;

		i = 0;
		cout << "Элементы первого массива: ";
		while (i < m)
		{
			cout <<  array1[i] << " ";
			i++;
		}
		cout << endl;

		i = 0;
		cout << "Элементы второго массива: ";
		while (i < n)
		{
			cout << array2[i] << " ";
			i++;
		}
		cout << endl;

		i = 0;
		cout << "Элементы третьего массива: ";
		while (i < k)
		{
			cout << array3[i] << " ";
			i++;
		}
		cout << endl;


		delete[] array1;
		delete[] array2;
		delete[] array3;
	}
	else
	{
		cout << endl << "float" << endl;
		float* array1 = new float[k];
		float* array2 = new float[m];
		float* array3 = new float[n];

		int i = 0;
		while (i < k)
		{
			cout << "Введите значение элемента первого массива под индексом " << i << ": " << endl;
			cin >> array1[i];
			i++;
		}
		cout << endl;

		i = 0;
		while (i < m)
		{
			cout << "Введите значение элемента второго массива под индексом " << i << ": " << endl;
			cin >> array2[i];
			i++;
		}
		cout << endl;

		i = 0;
		while (i < n)
		{
			cout << "Введите значение элемента третьего массива под индексом " << i << ": " << endl;
			cin >> array3[i];
			i++;
		}
		cout << endl;

		i = 0;
		cout << "Элементы первого массива: ";
		while (i < m)
		{
			cout << array1[i] << " ";
			i++;
		}
		cout << endl;

		i = 0;
		cout << "Элементы второго массива: ";
		while (i < n)
		{
			cout << array2[i] << " ";
			i++;
		}
		cout << endl;

		i = 0;
		cout << "Элементы третьего массива: ";
		while (i < k)
		{
			cout << array3[i] << " ";
			i++;
		}
		cout << endl;

		delete[] array1;
		delete[] array2;
		delete[] array3;
	}


	
	return 0;
}

61e7c92529b3b610620392.png
  • Вопрос задан
  • 62 просмотра
Решения вопроса 2
Ocelot
@Ocelot
Когда вы заполняете массивы, переменные, задающие их размеры, идут в порядке k, m, n; а когда выводите - m, n, k. Придумывайте осмысленные имена вместо ничего не значащих букв, так меньше вероятность ошибиться.
Ответ написан
Комментировать
@galaxy
Размер первого массива - k. При выводе он почему-то стал m
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы