Góp ý code tìm hàng, cột lớn nhất của ma trận M * N

Mọi người cho mình hỏi mình viết vậy có ổn không và xin được góp ý những cách hay hơn ạ

#include "pch.h"
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
	srand(time(0)); // генерация случайных чисел
	int m, n, max, k, l, znach1, znach2 = 0;
	cin >> m;
	cin >> n;
	// динамическое создание двумерного массива вещественных чисел на динамическое кол-во элементов
	float **ptrarray = new float*[m]; // м - строк в массиве
	for (int count = 0; count < m; count++)
		ptrarray[count] = new float[n]; // и n столбцов
	// заполнение массива
	for (int count_row = 0; count_row < m; count_row++)
		for (int count_column = 0; count_column < n; count_column++)
		{
			ptrarray[count_row][count_column] = (rand() % 50);
			znach1 = ptrarray[count_row][count_column];
			if (znach2 < znach1)
			{
				max = znach1;
				k = count_row;
				l = count_column;
				znach2 = znach1;
			}
		} //заполнение массива случайными числами с масштабированием от 1 до 10
	// вывод массива
	for (int count_row = 0; count_row < m; count_row++)
	{
		for (int count_column = 0; count_column < n; count_column++)
			cout << setw(4) << setprecision(2) << ptrarray[count_row][count_column] << "   ";
		cout << endl;
	}
	cout << "\n max znachenie na: [" << k+1 << "] [" << l+1 << "]" << endl;
	// удаление двумерного динамического массива
	for (int count = 0; count < m; count++)
		delete[] ptrarray[count];
	system("pause");
	return 0;
}

thiếu delete[] ptrarray; nha :V

thay vì mảng 2 chiều em làm mảng 1 chiều giả mảng 2 chiều cũng được, dùng 1 vòng for thôi

2 Likes

Thực ra cũng không cần delete, vì chạy xong là hết hàm main app tắt rồi, windows tự giải phóng bộ nhớ, lo gì :joy:

2 Likes

giả thế nào vậy ạ ?
E không rõ lắm cách này

em nó đã giải phóng từng hàng rồi tức là đã muốn free bộ nhớ, nên làm cho đúng :V

giả bằng cho hàng sau đi liền sau hàng trước, ví dụ
a11 a12 a13
a21 a22 a23
a31 a32 a33
thì flatten nó thành
a11 a12 a13 a21 a22 a23 a31 a32 a33
rồi em tìm max trên mảng 1 chiều MxN phần tử dễ dàng, ví dụ cho nó ở vị trí i, thì em suy ra số hàng và số cột cũng dễ, số hàng là i / N, số cột là i % N.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?