Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: có thể truy cập mảng hai chiều bằng một vòng for

  1. #1
    Ngày gia nhập
    10 2010
    Nơi ở
    Đại học Bách Khoa Hà Nội
    Bài viết
    45

    Mặc định có thể truy cập mảng hai chiều bằng một vòng for

    theo mình biết, mảng hai chiều thực chất chỉ là các mảng một chiều liên tiếp nhau
    vậy thì có thể truy cập mảng hai chiều bằng mảng một chiều không ( giảm thời gian truy xuất )
    ví dụ:
    C Code:
    1. int a[3][3] = { { 1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
    2. for (i=0; i<9; i++)
    3.     printf("%d ", **(a+i));

    đoạn chương trình trên bị lỗi
    ai có cách giải quyết mà vẫn có thể truy cập mảng hai chiều bằng một vòng for không
    Chẳng biết mình muốn cái gì nữa :v

  2. #2
    Ngày gia nhập
    03 2010
    Nơi ở
    My Home
    Bài viết
    772

    Trích dẫn Nguyên bản được gửi bởi iexplore Xem bài viết
    theo mình biết, mảng hai chiều thực chất chỉ là các mảng một chiều liên tiếp nhau
    vậy thì có thể truy cập mảng hai chiều bằng mảng một chiều không ( giảm thời gian truy xuất )
    ví dụ:
    C Code:
    1. int a[3][3] = { { 1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
    2. for (i=0; i<9; i++)
    3.     printf("%d ", **(a+i));

    đoạn chương trình trên bị lỗi
    ai có cách giải quyết mà vẫn có thể truy cập mảng hai chiều bằng một vòng for không
    C Code:
    1.     int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    2.     int i;
    3.     for(i = 0; i < 9; i++)
    4.         printf("%4d", *(*(a + i/3) + i % 3));

    Or
    C Code:
    1. int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    2.     int i;
    3.     for(i = 0; i < 9; i++)
    4.         printf("%4u", *(*(a) + i));
    Đã được chỉnh sửa lần cuối bởi namdq2k : 09-05-2012 lúc 11:56 AM.

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

  1. Bài tập C Dùng vòng lặp in mảng 1 chiều (khá thú vị)
    Gửi bởi itbk trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 16-11-2012, 10:22 AM
  2. [Hỏi] Các cách sắp xếp mảng một chiều không dùng vòng lặp
    Gửi bởi plus trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 25-10-2012, 09:15 PM
  3. Cách chia 1 mảng 1 chiều thành n mảng nhỏ theo vòng lặp for
    Gửi bởi nkhanh90 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 07-11-2011, 03:38 PM
  4. Bài tập C Lỗi vòng lặp for của code sắp xếp mảng 2 chiều theo hàng
    Gửi bởi kid_191 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 26-08-2011, 04:51 PM
  5. Hướng dẫn cách dịch phải, xoay vòng mảng một chiều
    Gửi bởi monganh22 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 27
    Bài viết cuối: 16-05-2010, 07:43 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