Tìm các giá trị lớn nhất trong từng hàng (hoặc cột) của ma trận?

Như tiêu đề, em có viết 1 hàm tìm giá trị lớn nhất trong từng hàng, nhưng nó chỉ in ra giá trị lớn nhất của hàng đầu tiên. Xin mọi người giúp đỡ em thêm.

int giatri_max_trongtunghang(int a[][100], int hang, int cot)
{
    int i,j;
    int max=a[0][0];
    for(i=0; i<hang; i++)
        for(j=0; j<cot; j++)
            if(a[0][j]>m)
            {
                max=a[0][j];
            }
    return max;
}
2 Likes

hàm trả về 1 giá trị mà =)))

3 Likes

anh sửa lại giùm em, hay k gợi ý cũng được anh à :smiley:

1 Like

chỗ m là max nhé, chắc bạn nhầm :wink:

Duyệt mảng tìm max (của mảng) giống như bình thường. (Nghĩa là duyệt a[i][j] nhé). Nhưng sau vòng for (cho j) truyền max vào một mảng và gán lại max = phần tử đầu của dòng tiếp theo :smiley:

2 Likes

Hàm e chỉ cho trả về 1 giá trị là kiểu Int. Nên không có cách nào để giải quyết việc tìm max cho nhiều dòng.
E thử cách này xem :smile:

void giatri_max_trongtunghang(int a[][100], int hang, int cot)
{
	int i, j;
	int max = a[0][0];
	for (i = 0; i > hang; i++)
	{
		max = a[i][0];
		for (j = 0; j< cot; j++)
		{
			if (a[i][j] > max)
			{
				max = a[i][j];
			}
		}
		printf_s("%f", max);
		printf_s("\n");
	}
}
2 Likes
void Max(int a[][MAXC], int MaxInEachRow[], int nd, int nc)
{
	int max=a[0][0];
	for(int i=0; i<nd; ++i)
	{
		for(int j=0; j<nc; ++j)
		{
			if(a[i][j]>max)
			{
				max=a[i][j];
			}
		}
		MaxInEachRow[i] = max;
		cout << "Dong " << i+1 << " Max la: " << MaxInEachRow[i] << endl;
	}
}
2 Likes

cho thêm 1 cái mảng MaxInEachRow[] để chứa max từng dòng. rồi xuất nó ra

2 Likes

Sao k xuất ra luôn còn lưu vô mảng làm j e nhỉ ???

2 Likes

Chưa gán lại max kìa :smiley: :smiley:

1 Like

sửa thiếu chỗ a[0][j]

2 Likes

Đã test rồi nhá =))

2 Likes

Nhập 9 8 7 6 5 4 3 2 1 xem

2 Likes

Anh ơi em mới học đến C thôi, chưa học C++, anh sửa lại giùm em được ko :frowning:

2 Likes

thanks. đã fix, chưa chạy thử nữa, mà chắc ổn. hi

3 Likes

bài này thì như nhau thôi mà e .

2 Likes

khó quá bỏ qua đi =)))

3 Likes

:smile: :smile: :smile: :smile: :smile:

1 Like

Em cảm ơn mọi người nhiều :smiley:

2 Likes
void ham_4( int a[][10], int n, int m)
{ 
	int min;
    min=a[0][0];
    int j=0;
    while( j<m)
	{
	    min=a[0][j];
		for( int i=0; i<n; i++ )
		{
			
			if( a[i][j]<min)
			{
				min=a[i][j];
		    }	
		}
		printf("\nmin cot thu %d la: %d",j+1, min);
		j++;
		}
2 Likes

Close the 6 years old topic.

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