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

Đề tài: dùng mảng 1 chiều làm tham số cho hàm

  1. #1
    Ngày gia nhập
    12 2009
    Bài viết
    4

    Mặc định dùng mảng 1 chiều làm tham số cho hàm

    em co bài tập C như sao nghĩ hoài vẫn chưa hiểu phần hàm chính và nó truyền như thế nào vào hàm phụ:

    #include <stdio.h>
    #include <conio.h>

    #define MAX 20

    int max(int, int);

    int max(int ia[],int in)
    {
    int imax=ia[0];
    for(int i=1;i<in;i++)
    if(imax<ia[i])
    imax=ia[i];
    return imax;
    }

    void main()
    {
    int ia[MAX]; //ham toi da 20 phan tu
    int i=0, inum;
    do
    {
    printf("Nhap vao day 1 so:");
    scanf("%d",&ia[i]);
    }while (ia[i++] != 0);
    i--; // i-- nay de lam gi?
    inum=max(ia,i); //cho nay khong thay nhap i vao nieu truyen vao ham conthitruyen gì nhi?
    printf("So lon nhat la: %d.\n",inum);
    getch():
    }

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Vẽ ra giấy và chạy tay thử 1 vài cái là hiểu.
    Những ai bắt đầu học lập trình đều nên làm như vậy cả.
    Ít ai tài giỏi đến mức nhìn vào code cái là biết nó làm cái trò gì
    Um Mani Padme Hum...!!

  3. #3
    Ngày gia nhập
    01 2011
    Bài viết
    11

    Trích dẫn Nguyên bản được gửi bởi anhut Xem bài viết
    em co bài tập C như sao nghĩ hoài vẫn chưa hiểu phần hàm chính và nó truyền như thế nào vào hàm phụ:

    #include <stdio.h>
    #include <conio.h>

    #define MAX 20

    int max(int, int);

    int max(int ia[],int in)
    {
    int imax=ia[0];
    for(int i=1;i<in;i++)
    if(imax<ia[i])
    imax=ia[i];
    return imax;
    }

    void main()
    {
    int ia[MAX]; //ham toi da 20 phan tu
    int i=0, inum;
    do
    {
    printf("Nhap vao day 1 so:");
    scanf("%d",&ia[i]);
    }while (ia[i++] != 0);
    i--; // i-- nay de lam gi?
    inum=max(ia,i); //cho nay khong thay nhap i vao nieu truyen vao ham conthitruyen gì nhi?
    printf("So lon nhat la: %d.\n",inum);
    getch():
    }
    Lần sau bỏ code vào thẻ tag nhé bạn, mình sẽ trả lời những câu hỏi chú thích của bạn, còn tại sao thì bạn chịu khó chạy tay code lại nhé
    i-- nay de lam gi?
    Bạn xem lại hàm do while, i sẽ tăng lên 1 để kiểm tra biến kế tiếp nhập vào phải là 0 ko? nếu phải thì ngừng vòng lặp, Ví dụ, bạn nhập vào 3 số 3, 2 , 0; Lúc này i[0] = 3, i[1] = 2; i[2] = 0; Vì chúng ta ko xét giá trị 0 nên i sẽ trả về giá trị sau giá trị 0 đế tính.
    //cho nay khong thay nhap i vao nieu truyen vao ham conthitruyen gì nhi?
    i là biến đếm trong câu lệnh while mà bạn hỏi ở trên đó
    Code is more than binary. Its poetry

  4. #4
    Ngày gia nhập
    12 2009
    Bài viết
    4

    xin lỗi vì mình tụ học c nên nhiều cái vẫn chưa hiểu lắm!

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Vì mảng trong C bắt đầu bằng chỉ số 0, cho nên số phần tử trong mảng luôn luôn bằng chỉ số của phần tử cuối cùng cộng 1.
    Câu lệnh này:
    }while (ia[i++] != 0);
    xét giá trị của ia[i] xem có khác 0 hay không, và sau đó tăng i lên 1 để đếm số phần tử.
    khi ia[i] là 0 thì vòng lặp kết thúc, và số vừa nhập vào (ia[i]) không dược coi là 1 phần tử. Tuy nhiên vì i đã bị tăng lên 1 cho nên phải trừ ngược trở lại 1 để cho đúng số phần tử.

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

  1. Bài tập C Bài tập tính lãi ngân hàng dùng đệ quy hoặc tham chiếu, tham trị
    Gửi bởi thaohoangf trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-10-2012, 08:24 AM
  2. Tại sao dùng const trong trường hợp dùng biến tham chiếu
    Gửi bởi dinhdoong trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 13
    Bài viết cuối: 04-02-2012, 10:45 PM
  3. Tham chiếu giá trị mảng 2 chiều vào mảng 1 chiều,,,,,help me:(
    Gửi bởi bean_lazy trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 26-10-2009, 11:10 PM
  4. Tham số mảng 2 chiều
    Gửi bởi ntvhuy0891990 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 17-10-2009, 02:21 PM
  5. cho hỏi về cách dùng Tham biến và tham trị trong C++
    Gửi bởi dta4c trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 12-01-2008, 10:18 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