-
12-03-2012, 08:45 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Tính TBC các phần tử của M.Trận B từ các số cho trước trong M.trận A
mình có 1 bài như thế này .
Nhập vào ma trận vuông A 3 dòng 3 cột trên file
1 2 2
2 3 1
4 3 2
Yêu cầu xuất ra Ma trận B:
2.3 1.8 2.0
2.6 2.1 2.4
2.6 2.4 2.3
nôm na như sau:
B[1][1] = ( A[1][2] + A[2][1]+ A[2][2] ) / 3
tương tự với B[1][3] ,B[3][1] ,B[3][3] .
B[1][2] = ( A[1][1] + A[1][3] + A[2][1] + A[2][2] +A[2][3] )/5 .
tương tự với B[2][1] ,B[2][3] ,B[3][2] .
B[2][2] = trung bình công các số xung quanh trong A.
mình làm thế này .hơi thụ động :d
Mã:int i ,j; float tong; for( i = 1; i<=n ;i++) { for( j =1; j<=n; j++) { if((i==1 &&(j==1 || j==3)) || (i==3 &&(j==1 || j==3))) { //dem = 3; tong = (a[i][j-1]+a[i-1][j-1]+a[i-1][j]+a[i-1][j+1]+a[i+1][j-1] +a[i][j+1]+a[i+1][j] + a[i+1][j+1])/3 ; } if((j==2 &&(i==1 || i==3)) || (i==2 &&(j==1 || j==3))) { //dem = 5; tong = (a[i][j-1]+a[i-1][j+2]+a[i-1][j]+a[i-1][j+1]+a[i][j+1] +a[i+1][j]+a[i+1][j+1] + a[i+1][j+2])/5 ; } if(i==2 && j==2) { //dem = 8 ; tong = (a[i][j]+a[i][j+1]+a[i][j+2]+a[i+1][j] +a[i+1][j+2]+a[i+2][j] + a[i+2][j+1]+a[i+2][j+2])/8 ; } } printf(" "); } return tong*1.0; }
View more random threads:
- Xuất tất cả các xâu nhị phân có độ dài n được nhập vào từ bàn phím
- Bài tập về đồ họa trong C
- Lỗi khi chạy class ma trận ?
- dùng hàm gì để khi nhập ký tự vào thì nó bất nhập lại?
- Xem giúp mình code DEV C/C++
- Viết chương trình nhập vào mảng 1 chiều, sau đó tìm xem có đoạn tăng nào có tổng lớn nhất
- gỡ rồi in / out trong c++ với
- mọi người giải thích hộ t với
- Rắc rối tìm phần tử trong dãy = 2^k
- Khai báo mảng String động 2 chiều
-
12-03-2012, 10:42 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Sax. Bài này cho trước cái công thức đó rồi thì vào cứ thế mà làm thôi chứ giải thuật gì nữa ?
Cứ viết rợ ra cho đủ 9 cái như thế đi nhé
Đề bảo cho ma trận 3 3 chứ có cho ma trận n n đâu mà giải với thuật
-
12-03-2012, 06:37 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi ngoc_le_iu_iu
Mã:float average(int a[][],int i,int j) { float aver=0; int n=0; if(i+1<maxi){ aver+=a[i+1][j]; n++; } if(j+1<maxj){ aver+=a[i][j+1]; n++; } if(j+1<maxj && i+1<maxi){ aver+=a[i+1][j+1]; n++; } if(i-1>-1){ aver+=a[i-1][j]; n++; } if(j-1>-1){ aver+=a[i][j-1]; n++; } if(j-1<-1 && i-1<-1){ aver+=a[i-1][j-1]; n++; } aver/=n; return aver; }
-
13-03-2012, 10:18 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi clchicken
[IMG]images/smilies/thinking.gif[/IMG] tui không phải người giỏi giải thuật nhưng củng khuyên bác đừng tỏ vẻ ta đây .Bác k giúp tui củng có người khác giúp.tui chỉ muốn tìm lời giải tối ưu cho bài này thôi.chứ nói như bác thì ai làm chả được.nhập ma trận 4*4 bác thử số 9 của bác đi nhé/
-
13-03-2012, 10:27 AM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi nlhuykhang
Mã:float Kq = 0; int dem = 0; for(int x = 1 ;x<=n ; x++) for(int y = 1; y<=n ; y++) if(abs(x-i)<= 1 && abs(y-j)<= 1) { Kq+= a[x][y]; dem++; } return (Kq-a[i][j])/(dem-1);
như i = 0, j = 0 ;
ta được 4 phần tử a[0][0] a[1][0] a[0][1] a[1][1]
return - đi cho 1 là a[0][0]
cách này thử được với a[4][4] luôn [IMG]images/smilies/biggrin.png[/IMG] thanks tất cả đã góp ý [IMG]images/smilies/clap_grin.gif[/IMG]
-
13-03-2012, 01:22 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
[IMG]images/smilies/thinking.gif[/IMG] Viết 9 cái cũng đc đấy;
khổ thân clchicken[IMG]images/smilies/laughing.gif[/IMG]
Pallet nhựa Long An đã trở thành một trong những lựa chọn phổ biến cho nhu cầu vận chuyển và lưu trữ hàng hóa trong nhiều ngành công nghiệp. Với đặc tính nhẹ nhàng, chắc chắn và dễ vận chuyển, các...
Thanh lý pallet nhựa Long An giá rẻ