Mảng 2 chiều: GTLN của GTNN của từng dòng

Em chỉ mới làm được GTNN của từng dòng,em không biết làm sao để code để lấy kết quả min từng dòng rồi max nó nữa,có ai biết thì chỉ em với.

int min(int a[maxm][maxn],int m,int n)
{
	for(int i=0;i<m;i++)
	{
		int min=a[i][0];
		for(int j=0;j<n;j++)
		if(a[i][j]<min)
		min=a[i][j];
		printf("\n%d",min);
	}
	printf("\n");
	
}

bài này tạo 1 mảng min gồm m phần tử min rồi chạy tìm max thôi

Cái này là em muốn tìm min từng dòng trước rồi mới tìm max của những cái min đó ạ

Tức là tạo mảng int min[m]; rồi dùng vòng lặp

for (int i = 0; i < m; i++)
	{
		if (min[i] > max) {
			max = min[i];
		}
	}

rồi in ra max thôi

Anh nói rõ hơn đc ko ạ,em không hiểu lắm

int min[m];
	for(int i=0;i<m;i++)
	{
		min[i]=a[i][0];
		for(int j=0;j<n;j++)
		{
		if(a[i][j]<min)
		min[i]=a[i][j];
		}
	}

cái này là tìm min trong mỗi dòng
cái ở trên là tìm max

Cái min từng dòng em biết ạ,tại em đã đăng ở trên rồi,em thắc mắc ở chỗ tìm max ấy em làm giống anh thì ra lỗi,em nghĩ là lúc đầu phải gán max cơ mà em rối ở chỗ gán max bằng gì?

mình gán max = min[0] bạn ạ

vẫn bị lỗi ạ,em sửa hoài ko đc

Code sai lỗi cơ bản.

1 Like

bạn khai báo min[m] sai chỗ kìa. với cả thiếu dấu ‘=’ nữa. Bạn thử cái này xem sao :


int mindong(int a[maxm][maxn],int m,int n)
{
	int min[m];
	for(int i=0;i<m;i++)
	{
		min[i]=a[i][0];
		for(int j=0;j<n;j++)
		{
		if(a[i][j]<min)
		min[i]=a[i][j];
		}
		printf("\nSo nho nhat trong hang %d la %d",i,min[i]);
	}
	int max = min[0];
	for (int i = 0; i < m; i++)
	{
		if (min[i] > max) {
			max = min[i];
		}
	}
	printf("\n So lon nhat trong nhung so nho nhat la %d",max);
	
}

cái này bị lỗi con trỏ anh ơi mà em chưa học con trỏ

Bạn dùng 2 hàm khác nhau hả ?

em dùng trong 1 hàm nó cũng bị lỗi

int mindong(int a[maxm][maxn],int m,int n)
{
        // int min[m] ở đây
	for(int i=0;i<m;i++)
	{
	    int min=a[i][0];   // min[i] mới đúng                      
	    for(int j=0;j<n;j++)
		if(a[i][j]<min) //min[i] không phải min
		min=a[i][j]; //min[i] không phải min
		printf("\n%d ",min); //min[i] không phải min
	}
	int min[i]; //Khai báo kiểu này này biểu sao không lỗi, i ở đâu ra vả lại sai chỗ
	int max=min[0];
	for(int i=0;i<m;i++)
	if(min[i]>max) max=min[i];
	printf("\n%d",max);
}
1 Like

Vừa khai báo min là kiểu int, sau đấy lại khai báo min là kiểu mảng với số phần tử i không tồn tại, bạn có hiểu code của bạn không?

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