-
13-02-2008, 01:47 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
có nhầm lẫn gì chăng trong mảng mảng C++
các bác nào PRo cho em hỏi C++ 1 chút
biểu diễn một mảng hai chiều kích thước 3x5 có kiểu int. Cách khai báo mảng này như sau:
int jimmy [3][5];
(hãy nhớ rằng chỉ số của mảng luôn bắt đầu từ 0).
em co 1 đoạn mã như thế này(viết 1 ma trận mxn sau đó in ma trận dưới dạng bảng và tìm 1 phần tử lớn nhất)
em khong hieu phan tu a[0][0]...a[0][n]
a[1][0]...a[m][0]
o cho nao trong khi đoạn mã dưới đây không hề nhắc đến các phần tử này ?? theo lý thuyết các phần tử của mảng luôn bắt đầu từ chỉ số 0
vd int a[5] thi gom 5 phan tu a[0] a[1] a[2] a[3] va a[4]
trich sach "C++ lap trinh huong doi tuong GS nguyen van at"
Mã:#include<iostream.h> #include<conio.h> #include<iomanip.h> void main(); { float a[20][20],smax; int m,n,imax,jmax,k; cout<<"so hang cua ma tran la :"; cin>>m; cout<<"so cot cua ma tran la "; cin>>n; for(i=1;1<=m;++i) for(j=1;j<=n;++j) { cout<<"a["<<i<<"],["<<J<<"j] ="; cin>>a [i][j]; } smax=a[1][1]; imax=1; jmax=1; for(i=1;1<=m;++i) for(j=1;j<=n;++j) if(smax<=a [i][j]) { smax=a [i][j]; imax=i; jmax=j; } cout<<" Matran"; cout<<setiosflags(ios::showpoint)<<setpricision(1); for(i=1;1<=m;++i) for(j=1;j<=n;++j) { if(j==1)cout<<" "; cout<<a [i][j]; } cout<<"phan tu lon nhat cua mang la: "<<smax<<" "; cout<<"hang thu: "<<imax<<" "; cout<<"cot thu: "<<jmax; }
View more random threads:
- Thắc mắc bài tập xử lý file
- Bài tập xoay cửa
- Lập trình C++ dùng phần mềm nào.
- giup minh bài nay vs
- chương trình quản lý phòng trong khách sạn. Tìm kiếm dữ liệu, xin giúp đỡ?
- tìm lỗi dùm em với
- giải thích dùm mình bài gán tất cả phần tử mảng a vào mảng b
- Chương trình quản lí điện thoại
- Giải phương trình bậc hai
- Giúp mình với
-
13-02-2008, 04:23 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Đúng là trong c/c++ chỉ số mảng bắt đầu bằng 0 thật nhưng mà ta cũng ko nên hiểu máy móc như vậy . Bạn tưởng tượng ta có 1 tỷ đồng , ta cho bạn ta 1 ngàn đồng thì có hề hấn gì chứ , vẫn còn đến 9.999.999.000 đồng để xài thoải mái mà . Ở đây cái ông ất này thích vậy thì ổng cứ làm vậy thôi . Bạn suy nghĩ lại sẽ thấy ổng bỏ hết mấy phần tử đầu mảng 2 chiều , chỉ thao tác trên mảng còn lại thôi . Cũng được , chẳng sao ...
-
13-02-2008, 04:36 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Ở trên, phần tử a[0][j] và a[i][0] chưa được gán giá trị thôi, có thể đem ra sử dụng tùy ý mà không lo bị đòi lại. Thử xem! [IMG]images/smilies/biggrin.png[/IMG]
Hơn nữa khai báo mảng tĩnh thì thường là khai báo thừa, dùng bao nhiêu thì tùy, miễn sao nó không 'tòi' ra cái thằng chưa được khai báo là OK. [IMG]images/smilies/biggrin.png[/IMG] (kiểu này là của mấy bác PMU18 ấy mà)
Thực chất Bác Ất muốn làm thế để cho người đọc dễ hiểu thôi.
Một ma trận thì thường chỉ số bắt đầu từ 1. Viết như thế mọi người dễ hình dung hơn về cách giải bài toán, sau khi hình dung ra cách giải, đi vào công việc cụ thể thì phải làm cho chuẩn. Giáo viên cũng thường dạy như kiểu đó, nếu trái ý có khi còn không được điểm ấy chứ?
-
13-02-2008, 06:06 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mã:#include<iostream.h> #include<conio.h> #include<iomanip.h> void main(); { float a[20][20],smax; int m,n,imax,jmax,k; cout<<"so hang cua ma tran la :"; cin>>m; cout<<"so cot cua ma tran la "; cin>>n; // // i, j ban đầu đã đc set giá trị là 1, bắt đầu đi từ số 1 // for(i=1;1<=m;++i) for(j=1;j<=n;++j) { cout<<"a["<<i<<"],["<<J<<"j] ="; cin>>a [i][j]; } smax=a[1][1]; imax=1; jmax=1; // // i, j ban đầu đã đc set giá trị là 1 // for(i=1;1<=m;++i) for(j=1;j<=n;++j) if(smax<=a [i][j]) { smax=a [i][j]; imax=i; jmax=j; } cout<<" Matran"; cout<<setiosflags(ios::showpoint)<<setpricision(1); // // i, j ban đầu đã đc set giá trị là 1 // for(i=1;1<=m;++i) for(j=1;j<=n;++j) { if(j==1)cout<<" "; cout<<a [i][j]; } cout<<"phan tu lon nhat cua mang la: "<<smax<<" "; cout<<"hang thu: "<<imax<<" "; cout<<"cot thu: "<<jmax; }
@ledinhtung61 : đang suy nghĩ tại sao điều kiện 1 <= m chương trình lại không báo lỗi khi ra ngoài mảng [IMG]images/smilies/1.gif[/IMG]
-
13-02-2008, 06:14 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
đang suy nghĩ tại sao điều kiện 1 <= m chương trình lại không báo lỗi khi ra ngoài mảng
-
13-02-2008, 06:22 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
@ledinhtung61 : đang suy nghĩ tại sao điều kiện 1 <= m chương trình lại không báo lỗi khi ra ngoài mảng
-
14-02-2008, 04:11 PM #7Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Nếu code trên chạy, user nhập m & n >= 20 thì sao nhỉ, 30 chẵng hạn ?
-
14-02-2008, 04:15 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Nếu code trên chạy, user nhập m & n >= 20 thì sao nhỉ, 30 chẵng hạn ?
Bị mấy cái bug này mà code dài 1 tí thì có mà khóc.
-
14-02-2008, 04:19 PM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Tư duy của Pascal mang sang đấy em à !
-
14-02-2008, 04:23 PM #10Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hồi trước lúc em đọc sách pascal, em cũng không hiểu nhiều lắm về giải thuật, cho nên cũng hay bê y chang, để subscript đúng = n để cài đặt giải thuật. T_T. Lúc sau em bị bug chỗ n này quá em tởn luôn ^_^. Bị tìm mãi ko ra vì cứ quan niệm mình viết cái chỗ vòng for cả trăm lần rùi thì sao sai được, cứ vòng vòng kiếm mãi cuối cùng mới lòi ra là nó T_T.
Dưới ánh nắng mặt trời đang lên, những đống pallet nhựa An Giang trải dài mênh mông như những bức tranh tự nhiên đầy sắc màu. Mỗi chiếc pallet nhựa không chỉ là một vật dụng thông thường mà còn là...
Pallet nhựa An Giang giao hàng...