Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 30 kết quả

Đề tài: Kiểu cấu trúc "struct"!

  1. #1
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    Question Kiểu cấu trúc "struct"!

    Mình đang tìm hiểu kiểu struct trong C và có một bài liên quan, bạn nào có code dạng như bài này share cho mình với. Dưới đây là đầu bài:

    Nhập một danh sách gồm n thí sinh, mỗi thí sinh gồm: họ tên, tên trường, điểm. In danh sách thí sinh ra màn hình và tìm thí sinh có điểm cao nhất?

    Thanks!

  2. #2
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    4

    mình học năm đầu nên không hiểu gì lắm...

    alias_va: Nhập một danh sách gồm n thí sinh, mỗi thí sinh gồm: họ tên, tên trường, điểm. In danh sách thí sinh ra màn hình và tìm thí sinh có điểm cao nhất?

    cái này có phải dùng bảng không? có phải dùng một bảng gồm 3 cột và n hàng.
    ví dụ như là:
    a= new Aray(3,n);
    a[0,0]="tên";
    a[0,1]="trường";
    a[0,2]="điểm";

    a[1,0]="tên học sinh 1";
    a[1,1]="trường hoc sinh 1";
    a[1,2]="điểm học sinh 1";
    a[2,0]="tên học sinh 2";
    a[2,1]="trường hoc sinh 2";
    a[2,2]="điểm học sinh 2";

    vân vân và vân vân
    còn in ra danh sách thì có phải dùng printf(""); để in ra danh sách đó không?
    tìm ra danh sách học sinh có số điểm cao nhất thì dùng vòng lặp for để so sánh các điểm của các học sinh với nhau(a[1.2] và a[2.2],....a[n,2] chẳng hạn) rồi lấy ra điểm cao hơn rồi in ra ngoài? có phải làm như thế không?
    Đừng nói với tôi vấn đề đó khó...nếu nó không khó nó không phải là vấn đề....‰ —» % —» ¼ —» ½ —» 1 :Cái đích của ước mơ
    .´¯).:.___.:.(¯` ly_chank_ho ´¯).:.___.:.(¯`.

  3. #3
    Ngày gia nhập
    02 2008
    Bài viết
    88

    C++ Code:
    1. struct Hosohocsinh{
    2.   char Hoten[30];
    3.   char Truong[30];
    4.   float Diem;
    5. };
    Mình từ Caulacbovb qua)
    Giã từ VB6 đến với VB.Net, C# và Java.

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    78

    - Cái này thì mình dùng mảng kiểu <struct> Ví dụ như: của anhtuyenbk nhưng thêm một khai báo nữa là...
    C Code:
    1. struct Hosohocsinh{
    2.   char Hoten[30];
    3.   char Truong[30];
    4.   float Diem;
    5. typedef struct Hosohocsinh HS;//định nghĩa lại tên cho hosohocsinh
    6. HS A[100]; //khai báo một mảng có 100 phần tử ứng với 1 phần tử là 1 struct.
    7. };

    - Khai báo trên nghĩa là ta lập hồ sơ cho N học sinh đó...có quan hệ nhất định với nhau.Khi bạn muốn lưu nhiều hồ sơ học sinh thêm thì chỉ việc khai báo nhiều hơn (Or sử dụng danh sách liên kết).bạn thao tác y như mảng bình thường,có điều muốn tình toán thì ta chỉ cần tham chiếu đến thành phần thích hợp...Ví dụ A[i].Diem là tham chiếu tới diem của học sinh thứ i.

    - Cấu 1: in danh sách học sinh
    C Code:
    1. for(int i=0;i<n;i++)
    2. {
    3.     printf("---Ho so hoc sinh thu %d\n",i+1);
    4.     printf("Ho va ten %s",A[i].Hoten);
    5.         printf("Truong %s",A[i].Truong);
    6.     printf("Diem %f",A[i].Diem);
    7. }

    Câu 2:Tìm học sinh cao điểm nhất

    C Code:
    1. int max = 0
    2. for(int i=0;i<n;i++)
    3. {
    4.     if (A[i].Diem > max)
    5.     {
    6.         int indexMax = i;
    7.     }
    8. }
    9. printf(" -- Hoc sinh co diem cao nhat la --\n);
    10. printf("Ho va ten %s",A[indexMax].Hoten);
    11. printf("Truong %s",A[indexMax].Truong);
    12. printf("Diem %f",A[indexMax].Diem);
    Đã được chỉnh sửa lần cuối bởi hacker_mubaohiem : 17-03-2008 lúc 09:52 PM.
    No way, No success..

  5. #5
    Ngày gia nhập
    02 2008
    Bài viết
    88

    Mình cũng mới học C++ nên có thắc mắc thế này
    Typedef struct và struct có gì khác nhau không, mình thấy chúng chỉ khác nhau ở vị trí tên của Struct mà thôi
    Mình từ Caulacbovb qua)
    Giã từ VB6 đến với VB.Net, C# và Java.

  6. #6
    Ngày gia nhập
    03 2008
    Bài viết
    78

    Mặc định Kiểu cấu trúc "struct"!

    Từ khóa typedef ko chỉ dùng riêng cho struct ko thôi mà nó có nghĩa là cho ta định nghĩa lại tên của một kiểu dữ liệu bằng tên khác nhưng ko thay đổi chức năng.

    Cấu trúc:
    Code:
    Typedef <tên dữ liệu cũ> <tên dữ liệu mới>
    Ví dụ:
    Code:
    typedef int songuyen;//đổi lại tên của kiểu int thành tên là songuyen
             songuyen a,b,c; //bi jờ thì có thể khai báo biến nguyên 
                                   //bằng kiểu songuyen như là a,b,c
    - Còn bạn hay thấy ngta dùng với struct chủ yếu để đổi lại tên cho gọn thui mà...
    ví dụ: bạn đặt tên struct là hosohocsinh dài quá tui đổi lại là HS cho ngắn sau này dễ khai báo.
    Đã được chỉnh sửa lần cuối bởi hacker_mubaohiem : 17-03-2008 lúc 10:12 PM.
    No way, No success..

  7. #7
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    Trích dẫn Nguyên bản được gửi bởi hacker_mubaohiem Xem bài viết
    Từ khóa typedef ko chỉ dùng riêng cho struct ko thôi mà nó có nghĩa là cho ta định nghĩa lại tên của một kiểu dữ liệu bằng tên khác nhưng ko thay đổi chức năng.

    Cấu trúc:
    Code:
    Typedef <tên dữ liệu cũ> <tên dữ liệu mới>
    Ví dụ:
    Code:
    typedef int songuyen;//đổi lại tên của kiểu int thành tên là songuyen
             songuyen a,b,c; //bi jờ thì có thể khai báo biến nguyên 
                                   //bằng kiểu songuyen như là a,b,c
    - Còn bạn hay thấy ngta dùng với struct chủ yếu để đổi lại tên cho gọn thui mà...
    ví dụ: bạn đặt tên struct là hosohocsinh dài quá tui đổi lại là HS cho ngắn sau này dễ khai báo.
    Bạn giải thích dễ hiểu lắm! Cảm ơn bạn nhiều!

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

    Hi vọng đoạn code của mình đúng ý bạn!

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4.  
    5. typedef struct
    6. {
    7. char *hoten[5];
    8. char *tentruong[5];
    9. }hoso;
    10.  
    11. void main()
    12. {
    13. int i,j,a,max,n;
    14. hoso *thongtin;
    15. thongtin->hoten[0] = "Nguyen Van A\n";
    16. thongtin->hoten[1] = "Tran Van B\n";
    17. thongtin->hoten[2] = "Hoang Thi C\n";
    18. thongtin->hoten[3] = "Do Thi D\n";
    19. thongtin->hoten[4] = "Le Van E\n";
    20.  
    21. thongtin->tentruong[0] = "Tran Hung Dao\n\n";
    22. thongtin->tentruong[1] = "Le Quy Don\n\n";
    23. thongtin->tentruong[2] = "Luong The Vinh\n\n";
    24. thongtin->tentruong[3] = "Tran Phu\n\n";
    25. thongtin->tentruong[4] = "Ngo Thi Nham\n\n";
    26.  
    27. clrscr();
    28. for (i = 0; i < 5; i++)
    29. {
    30. printf("%s%s",thongtin->hoten[i],thongtin->tentruong[i]);
    31. }
    32.  
    33. printf("So luong diem can nhap la: ");
    34. scanf("%d",&n);
    35. for (j = 0; j < n; j++)
    36. {
    37. printf("Hay nhap vao 1 diem: ");
    38. scanf("%d",&a);
    39. if (a>max)
    40. {
    41. max = a;
    42. }
    43. }
    44. printf("Diem cao nhat la: %d", max);
    45. getch();
    46. }

  9. #9
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    Trích dẫn Nguyên bản được gửi bởi phong_robin Xem bài viết
    Hi vọng đoạn code của mình đúng ý bạn!

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4.  
    5. typedef struct
    6. {
    7. char *hoten[5];
    8. char *tentruong[5];
    9. }hoso;
    10.  
    11. void main()
    12. {
    13. int i,j,a,max,n;
    14. hoso *thongtin;
    15. thongtin->hoten[0] = "Nguyen Van A\n";
    16. thongtin->hoten[1] = "Tran Van B\n";
    17. thongtin->hoten[2] = "Hoang Thi C\n";
    18. thongtin->hoten[3] = "Do Thi D\n";
    19. thongtin->hoten[4] = "Le Van E\n";
    20.  
    21. thongtin->tentruong[0] = "Tran Hung Dao\n\n";
    22. thongtin->tentruong[1] = "Le Quy Don\n\n";
    23. thongtin->tentruong[2] = "Luong The Vinh\n\n";
    24. thongtin->tentruong[3] = "Tran Phu\n\n";
    25. thongtin->tentruong[4] = "Ngo Thi Nham\n\n";
    26.  
    27. clrscr();
    28. for (i = 0; i < 5; i++)
    29. {
    30. printf("%s%s",thongtin->hoten[i],thongtin->tentruong[i]);
    31. }
    32.  
    33. printf("So luong diem can nhap la: ");
    34. scanf("%d",&n);
    35. for (j = 0; j < n; j++)
    36. {
    37. printf("Hay nhap vao 1 diem: ");
    38. scanf("%d",&a);
    39. if (a>max)
    40. {
    41. max = a;
    42. }
    43. }
    44. printf("Diem cao nhat la: %d", max);
    45. getch();
    46. }
    Thank for your code!

  10. #10
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    31

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. void main()
    5. {
    6.  struct dsts
    7.  {
    8.   char hoten[30];
    9.   char truong[30];
    10.   float diem;
    11.   }ts,a[100];
    12.  clrscr();
    13.  int n,i;
    14.  printf("Nhap vao so luong thi sinh n= \n");
    15.  scanf("%d",&n);
    16.  for(i=0;i<n;i++)
    17.  {
    18.  printf("Nhap vao thi sinh thu %d\n",i+1);
    19.  printf("Ho ten : \n");
    20.  gets(a[i].hoten);
    21. // scanf("%s",&a[i].hoten);
    22.  printf("Truong : \n");
    23.  gets(a[i].truong);
    24. // scanf("%s",&a[i].truong);
    25.  printf("Diem : \n");
    26.  scanf("%f",&a[i].diem);
    27.  }
    28.  getch();
    29. }
    Các bạn kiểm tra giúp phần nhập của mình tại sao lại không thể nhập thông tin được?
    Đã được chỉnh sửa lần cuối bởi lethanh : 18-04-2009 lúc 10:49 PM.
    Live and feel....

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

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 02-09-2017, 06:36 PM
  2. Lỗi "Invalid token '(' in class, struct, or interface member declaration"
    Gửi bởi Zero79 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 26-04-2012, 03:29 PM
  3. Lỗi : error LNK2005: "extern "C" void __cdecl PropVariantInit(struct tagPROPVARIANT *)" (?PropVariantInit@@$$J0YAXPA
    Gửi bởi truongvu trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 14-09-2011, 02:52 AM
  4. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM
  5. chuyển xâu theo cấu trúc "ho...dem..ten" sang "ten...ho..dem"
    Gửi bởi hoangminh1190 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 15-01-2009, 07:16 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