Code in ra số lớn nhất trong mảng 2 chiều bị sai

Cho em hỏi với ạ.
Bài là nhập mảng hai chiều, kiểm tra và in ra số lớn nhất.
Nó không có lỗi nhưng chạy sai.

#include<stdio.h>

int kt(int arr[][100],int n, int m ){
	int i,j;
	
	int max = arr[0][0];
	for (i=0;i<n;i++){
		for(j=0;j<m;j++){
			if(arr[i][j]>max){
				max=arr[i][j];
			}
		}
	}
	return max;	
}

 void main(){
 	int i,j,max;
 	int n,m;
 	
 	printf("nhap hang:");
 	scanf("%d",&n);
 	
 	printf("nhap cot:");
 	scanf("%d",&m);
 	
 	
 	int arr[n][m];
 	
 	for(i=0;i<n;i++){
 		for(j=0;j<m;j++){
 			printf("\nnhap phan tu thu[%d][%d]:",i+1,j+1);
 			scanf("%d",&arr[i][j]);
		 }
	 }
	printf("max: %d",kt(arr,n,m));
 }

Sai ra sao hả bạn?

Cho xem phần nhập/xuất xem nào.

3 Likes

Nó chạy đến chỗ gán max=arr[0][0];
In ra giá trị đầu tiên.chứ nhập thì được.

  • Hãy thử in ra mảng arr trong hàm kt() xem nó ra gì?
  • Hãy thử thay int arr[n][m]; bằng int arr[n][100]; xem kết quả có đúng không?
3 Likes

Cám ơn ạ.
Em sẽ thử.

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