Duck hunt

Lập Trình 321

HOME Anh Ngữ Dịch Vụ Kế Toán LẬP TRÌNH 321

Lập Trình C

struct trong lập trình c


Trong lập trình, đôi khi các kiểu dữ liệu cơ sở chưa đủ mềm dẻo để cho cái bài toán thực tế. Các sự vật, hiện tượng trong thực tế rất phức tạp và có nhiều tình nhất khác nhau. Người lập trình có thể định nghĩa các kiểu dữ liệu mới có cấu trúc phù hợp với từng bài toán cụ thể

Trong khuôn khổ của bài này, ta sẽ tìm hiểu cách khai báo và sử dụng Struct (1 loại kiểu dữ liệu có cấu trúc) trong ngôn ngữ lập trình C.

Khai báo kiểu dữ liệu

struct TênCấuTrúc

{

    KiểuDữLiệu1  ThànhPhần1;

    KiểuDữLiệu2  ThànhPhần2;

    ...

    KiểuDữLiệun  ThànhPhầnn;

};

Khai báo biến có KDL là Struct

struct TênCấuTrúc TênBiến;

Ví dụ : Mô tả 1 kiểu dữ liệu HocSinh bao gồm Họ tên, Năm Sinh, Điểm Trung Bình

struct hocsinh

{

    char *HoTen;

    int NamSinh;

    float DiemTB;

};

Khai báo biến A và mảng hs có kiễu dữ liệu là học sinh

struct hocsinh A;       //A có KDL HocSinh

struct hocsinh hs[10];  //Mảng hs có KDL HocSinh

Để tiện cho việc khai báo các biến có KDL là 1 struct, người ta thường khai báo thêm :

typedef struct TênCấuTrúc TênCấuTrúcMới;

Khi đó để khai báo 1 biến có KDL cấu trúc, ta chỉ cần khai báo : TênCấuTrúcMới TênBiến;

Ví dụ với KDL Học sinh đã khai báo ở trên, ta có thể khai báo lại như sau :

struct hocsinh

{

    char *HoTen;

    int NamSinh;

    float DiemTB;

};

typedef struc hocsinh HocSinh;

HocSinh a, hs[10];

Truy xuất 1 thành phần của biến cấu trúc

Biến thường : TênBiến.TênThànhPhần

Biến con trỏ : TênConTrỏ->TênThànhPhần

Một số ví dụ với KDL Phân Số

struc phanso

{

    int Tu;

    int Mau;

};

typedef struct phanso PhanSo;

//Nhập 1 Phân số

void NhapPS(PhanSo &ps)

{

    printf("Nhap tu so: "); scanf("%d",&ps.Tu);

    printf("Nhap mau so: "); scanf("%d",&ps.Mau);

}

//Xuất 1 Phân số

void XuatPS(PhanSo ps)

{

    printf("%d/%d",ps.Tu,ps.Mau);

}

//Nhập mảng Phân số

void NhapMang(PhanSo ps[],int &n)

{

    printf("So phan tu: "); scanf("%d",&n);

    for (int i = 0; i < n; i++)

    {

        printf("Nhap phan so thu %d",i);

        NhapPS(ps[i]);

    }

}

//Xuất mảng Phân số

void XuatMang(PhanSo ps[], int n)

{

    for (int i = 0; i < n; i++)

    {

        XuatPS(ps[i]);

        printf(" "); // Khoảng trắng

    }

}

<< Bài Viết Khác
This post has no comments - be the first one!

UNDER MAINTENANCE
Danh Mục Chính
Game Mobile Android
App Android Hay
Lập Trình C
Tiện Ích Online
Hình Ảnh Đẹp
Giải Trí Thư Giản
Kinh Nghiệm Thủ Thuật
Cung Hoàng Đạo
Truyện Ngắn Hay
Điện Thoại Bạn Có Chưa?
Xem Thêm >>
Bài Viết: >> Share To Facebook

giai tri , game mobile , app android, lap trinh c, kinh nghiem, truyen ngan

kết nối 1,game 3, Đồng hồ gỗ