Trang 1 trên tổng số 13 12311... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 124 kết quả

Đề tài: Sự cố về mảng trên C- Làm thế nào?

  1. #1
    No Avatar
    letuyetnhung Khách

    Mặc định Sự cố về mảng trên C- Làm thế nào?

    Em có vài BT mảng, nhưng có vài phần em chưa hiều==>giải rồi nhưng mà có prób bờ lem hay là run no chính xác, hoạc là no biết lòn........vân vân .......và........ vân...vân.
    Nói chung là "mong các anh đi trước và các bạn cùng học C chỉ giúp ạ.

    1.Tìm ra số lớn thứ 2 trong mảng.
    2.Bài toán Yên Ngựa
    3.Các bài liên quan đến "chéo chính và chéo phụ"

    [mod].[/mod]
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 03-02-2007 lúc 10:47 AM. Lý do: Không viết đúng tiêu đề

  2. #2
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Tìm ra số lớn thứ 2 trong mảng.
    Tìm số lớn nhất trong mảng
    Tìm số lớn hơn các số còn lại nhưng phải nhỏ hơn số lớn nhất trong mảng
    Bài toán Yên Ngựa
    Điểm yên ngựa là điểm max trên cột và min trên dòng hoặc min trên cột và max trên dòng
    Tìm điểm max trên dòng i và kiểm tra xem nó có min trên cột j tương ứng ko
    Tìm điểm min trên dòng i và kiểm tra xem nó có max trên cột j tương ứng ko
    Các bài liên quan đến "chéo chính và chéo phụ"
    Nói chung chung như thế thì ko giải được
    Chúc em vui vẻ, có gì cần thì pm anh, anh hướng dẫn thêm cho, code thì em phải tự viết, có viết code thì em mới "quán triệt" được

  3. #3
    No Avatar
    Nhuan_Trang_Only_Love Khách

    Trích dẫn Nguyên bản được gửi bởi huynguyen
    Tìm số lớn nhất trong mảng
    Tìm số lớn hơn các số còn lại nhưng phải nhỏ hơn số lớn nhất trong mảng
    nên có một biến nhớ vị trí max, sau đó cho chạy từ đầu đến đó, và từ sau về,
    đồng thời so sánh hai vị trí chạy với nhau.
    Kết thúc số nào lớn hơn là số thứ hai.Theo tôi như vậy hạn chế được số lần chạy.bài này khi đó gần giống bài sắp xếp lại mảng tăng dần từ hai mạng tăng dần đã cho mà bác huynguyen đã viết code rùi đó
    Ngoài ra tôi đang phân vân với cách sắp xếp , rồi chỉ luôn ra vị trí thứ 2.Nhưng chưa so sánh được cách nào tối ưu.Bác huynguyen chỉ giùm nhé
    Nói chung chung như thế thì ko giải được
    Chúc em vui vẻ, có gì cần thì pm anh, anh hướng dẫn thêm cho, code thì em phải tự viết, có viết code thì em mới "quán triệt" được
    đồng ý như vậy, tuy nhiên khi viết ma trận thì cứ vẽ ra thì dễ làm hơn.
    Ví dụ: chéo chính thì i==j

  4. #4
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Theo tôi như vậy hạn chế được số lần chạy
    Cũng vậy à, vẫn phải 2 vòng for, ko hạn chế gì đâu, độ phức tập vẫn là O(2n).

  5. #5
    No Avatar
    Nhuan_Trang_Only_Love Khách

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Cũng vậy à, vẫn phải 2 vòng for, ko hạn chế gì đâu, độ phức tập vẫn là O(2n).
    Bác còn nhớ bài gần đây về sắp xếp hai mảng tăng dần thành một mảng tăng dần ko?
    Theo em thì áp dụng cách đó thì tiết kiệm số lần chạy .Ở đây là ko phải chạy lại vị trí MAX thôi.
    Mấy lần bài của bác nói đến " độ phức tạp"
    Hay là bác post lên một bài liên quan đến nó cho mọi người hiểu hơn ko.
    Kẻo kiến thức của em vẫn hạn chế lắm(vì chưa học nhiều lắm mà)
    THANKS___________

  6. #6
    No Avatar
    letuyetnhung Khách

    Mặc định Sự cố về mảng trên C- Làm thế nào?

    hihi......tam gat 2 bài đó lại nha!!!
    Em đang lèm bài này, nhung mà hẻm ra.

    void mincacdong(int a[50][50],int dong,int cot)
    {
    int mindong;

    mindong=tongtungdong(a,0,cot);
    for(int i=0;i<dong;i++)
    for(int j=0;j<cot;j++)
    {
    if(mindong>tongtungdong(a,dong,cot))
    mindong=tongtungdong(a,dong,cot);
    }
    printf("dong nho nhat trong mang la %d",mindong)
    }

    À........hình như quyền của em bị khóa, nên ko có sữ dụng được cácmenu và các yahoo vui nhộn nữa (bằng chứng là em đã mở javascript lên và các diển đàn khác thì sữ dụng mấy cái này là OK).

  7. #7
    Ngày gia nhập
    11 2006
    Bài viết
    633

    À........hình như quyền của em bị khóa, nên ko có sữ dụng được cácmenu và các yahoo vui nhộn nữa (bằng chứng là em đã mở javascript lên và các diển đàn khác thì sữ dụng mấy cái này là OK).
    Do bác Dreaminess ko dùng mấy cái đó ấy chứ, có ai dùng được biểu tượng yahoo đâu.
    Em đang lèm bài này, nhung mà hẻm ra.

    void mincacdong(int a[50][50],int dong,int cot)
    {
    int mindong;

    mindong=tongtungdong(a,0,cot);
    for(int i=0;i<dong;i++)
    for(int j=0;j<cot;j++)
    {
    if(mindong>tongtungdong(a,dong,cot))
    mindong=tongtungdong(a,dong,cot);
    }
    printf("dong nho nhat trong mang la %d",mindong)
    }
    Cho biết yêu cầu bài toán, viết code thế này khác gì đánh đố người ta >"<
    Theo em thì áp dụng cách đó thì tiết kiệm số lần chạy .Ở đây là ko phải chạy lại vị trí MAX thôi.
    Mấy lần bài của bác nói đến " độ phức tạp"
    Hay là bác post lên một bài liên quan đến nó cho mọi người hiểu hơn ko.
    Kẻo kiến thức của em vẫn hạn chế lắm(vì chưa học nhiều lắm mà)
    Tìm sách Cấu trúc dữ liệu và giải thuật đọc sẽ hiểu độ phức tạp là gì, nói sơ qua nhé. Nếu 1 vòng for chạy qua n bước hay n-1 bước hoặc là n-m bước đi chăng nữa thì độ phức tạp của nó vẫn là n, do đó, nếu bạn bớt kiểm tra 1 phần tử cũng ko chênh nhau là bao, giải pháp này ko được gọi là tiết kiệm. Trong khi đó, nếu 1 vòng for chạy qua n bước, rồi sau đó lại có 1 vòng for chạy n bước nữa, ta sẽ có độ phức tạp là 2n, nếu giảm từ 2n còn n thì đây mới gọi là tối ưu bài toán.
    Nếu 1 vòng for chạy qua n bước, trong mỗi bước lại có 1 vòng for chạy qua n bước nữa thì độ phức tạp là n^2, nếu giảm còn lại 2n thôi thì cũng là tối ưu hóa bài toán.
    Nói sơ sơ vậy chắc bạn cũng hiểu.

  8. #8
    No Avatar
    Nhuan_Trang_Only_Love Khách

    Trích dẫn Nguyên bản được gửi bởi huynguyen Xem bài viết
    Tìm sách Cấu trúc dữ liệu và giải thuật đọc sẽ hiểu độ phức tạp là gì, nói sơ qua nhé. Nếu 1 vòng for chạy qua n bước hay n-1 bước hoặc là n-m bước đi chăng nữa thì độ phức tạp của nó vẫn là n, do đó, nếu bạn bớt kiểm tra 1 phần tử cũng ko chênh nhau là bao, giải pháp này ko được gọi là tiết kiệm. Trong khi đó, nếu 1 vòng for chạy qua n bước, rồi sau đó lại có 1 vòng for chạy n bước nữa, ta sẽ có độ phức tạp là 2n, nếu giảm từ 2n còn n thì đây mới gọi là tối ưu bài toán.
    Nếu 1 vòng for chạy qua n bước, trong mỗi bước lại có 1 vòng for chạy qua n bước nữa thì độ phức tạp là n^2, nếu giảm còn lại 2n thôi thì cũng là tối ưu hóa bài toán.
    Nói sơ sơ vậy chắc bạn cũng hiểu.
    thanks ! em chưa học đến cấu trúc dữ liệu và giải thuật nên chưa bít.
    Té ra từ trước đến nay hay nghĩ nhầm, cảm ơn ông anh .
    À , thế trong bài nguyên tố .Trước em tự làm thì em cho chạy từ 1 đến n-1
    Sau này mới biết là chạy đến sqrt(n). vậy đây cũng là một tối ưu chứ bác?
    Hôm trước em đọc bài của bác về "số nguyên tố" nhưng chưa có thời gian nghiên cứu.em sẽ xem lại sau
    THANKS

  9. #9
    No Avatar
    Nhuan_Trang_Only_Love Khách

    Trích dẫn Nguyên bản được gửi bởi letuyetnhung Xem bài viết
    hihi......tam gat 2 bài đó lại nha!!!
    Em đang lèm bài này, nhung mà hẻm ra.

    void mincacdong(int a[50][50],int dong,int cot)
    {
    int mindong;

    mindong=tongtungdong(a,0,cot);
    for(int i=0;i<dong;i++)
    for(int j=0;j<cot;j++)
    {
    if(mindong>tongtungdong(a,dong,cot))
    mindong=tongtungdong(a,dong,cot);
    }
    printf("dong nho nhat trong mang la %d",mindong)
    }
    Viết này thì kó xem thật , tuy nhiên tôi cũng chưa thành thạo lắm.
    Còn bài này có phải là in ra dòng có tổng các phầ tử là nhỏ nhất?
    OK__________
    code của you là gán dòng đầu tiên vào biến mindong , rồi đi so sánh.
    Nguyến lý là như vậy roài.tuy nhiên
    if(mindong>tongtungdong(a,dong,cot))
    mindong=tongtungdong(a,dong,cot);
    bạn có thế thay lại là:

    temp=tongtungdong(a,dong,cot);
    if(mindong>temp) mindong=temp;
    __________
    như vậy
    if(mindong>tongtungdong(a,dong,cot)) //thỏa mãn điều kiện này
    mindong=tongtungdong(a,dong,cot); // bạn ko phải gọi hàm tong...nữa thôi vì trên bạn đã gọi nó rồi.sẽ tiết kiệm hơn
    ___________________CÓ GÌ SAI XIN CHỈ GIÁO________________________

  10. #10
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,760

    À........hình như quyền của em bị khóa, nên ko có sữ dụng được cácmenu và các yahoo vui nhộn nữa (bằng chứng là em đã mở javascript lên và các diển đàn khác thì sữ dụng mấy cái này là OK).
    Do bác Dreaminess ko dùng mấy cái đó ấy chứ, có ai dùng được biểu tượng yahoo đâu.
    Tài khoản của bạn Dreaminess đã kiểm tra thấy hoàn toàn bình thường và không bị hạn chế gì trong việc gửi và sửa bài cả.

    Vì diễn đàn này cần đưa nhiều các văn bản các loại và các code chương trình cho nên các smile (emoticon) không thể nào sử dụng các ký tự thay thế đơn giản như ở các Instant Messenger, hay ở các site giải trí được. Bạn có thể trả lời hay post bài bằng chức năng nâng cao để có thể trực quan việc sử dụng các tính năng. Hoặc tham khảo qua các smile và sử dụng một chút khả năng sáng tạo lại của bạn là có thể có được các smile vừa ý cho bài viết của mình.
    Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó.
    Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.

Các đề tài tương tự

  1. undo/redo khi thao tác với CSDL trên Winform C# làm thế nào?
    Gửi bởi cchangkhongayngo trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 08-11-2012, 11:04 PM
  2. Làm Chữ chạy trên form C# như thẻ <marquee> trong HTML thế nào?
    Gửi bởi magnet241 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 05-04-2012, 11:55 AM
  3. Trả lời: 30
    Bài viết cuối: 15-02-2012, 07:03 PM
  4. Lỗi gì đó liên quan tới DOS ảo trên win, không tìm thấy thông tin trên GOOGLE
    Gửi bởi longtth trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 20-12-2009, 12:03 AM
  5. Lưu dữ liệu để trống trên một cell của datagirdview trên csdl Access như thế nào?
    Gửi bởi hvcuongit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 27-05-2009, 04:21 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn