Lỗi trong bài liệt kê tần suất giá trị trong ma trận

Em có viết trương chình liệt kê tần suất giá trị trong ma trận. Nhưng khi cho chạy thì em bị lỗi, hình như em sai logic, ở phần thêm giá trị mới, anh chị nào có kinh nghiệm chỉ em với ạ.

#include <iostream>
using namespace std;
void nhap(int a[100][100],int m,int n);
void dem(int a[100][100],int m,int n);
int main(){
	int a[100][100];
	int m,n;
	cout<<"Nhap hang: ";
	cin>>m;
	cout<<"Nhap cot: ";
	cin>>n;
	nhap(a,m,n);
	dem(a,m,n);
	return 0;
}
void nhap(int a[100][100],int m,int n){
	for(int i=0;i<m;i++){
		for(int j=0;j<n;j++){
			cout<<"Nhap gia tri a["<<i<<"]["<<j<<"]: ";
			cin>>a[i][j];
		}
	}
}
void dem(int a[100][100],int m,int n){
	int phu=m*n;
	int giatri[phu],soluong[phu];
	phu=0;
	giatri[0]=a[0][0];
	soluong[0]=1;
	phu++;
	for(int j=1;j<n;j++){
		int dem=0;
		for(int i=0;i<phu;i++){
			if(a[0][j]==giatri[i]){
				soluong[i]++;
			}
			else{
			    dem++;	//de dem xem a[0][j] da xuat hien trong mang chua
			}
		}
		if(dem==phu-1){
			giatri[phu]=a[0][j];
			soluong[phu]=1;
			phu++;
		}
	}
	/*for(int i=1;i<m;i++){
		for(int j=0;j<n;j++){
		    for(int k=0;k<phu;k++){
		    	if(a[i][j]==giatri[k]){
		    		soluong[k]++;
				}
				else{
					giatri[phu]=a[i][j];
					soluong[phu]=1;
					phu++;
				}
			}	
		}
	}*/
	for(int i=0;i<=5;i++){
		cout<<" ";
	}
	cout<<"Gia tri";
	for(int i=0;i<=5;i++){
		cout<<" ";
	}
	cout<<"Tan so\n";
	int phu2=phu-1;
	while(phu2>=0){
		for(int i=0;i<=7;i++){
			cout<<" ";
		}
		cout<<giatri[phu2];
		for(int i=0;i<=5;i++){
			cout<<" ";
		}
		cout<<soluong[phu2]<<endl;
		phu2--;
	}
	cout<<giatri[1]<<" "<<soluong[1];
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?