Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: Bài tập về cấu trúc trong c | Cấu trúc sinh viên???

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

    Wink Bài tập về cấu trúc trong c | Cấu trúc sinh viên???

    đề bài là: sử dụng cấu trúc để lưu tên, điểm của 1 học sinh sau đó hiện lại, tính điểm trung bình và tổng điểm, đây là đoạn code của mình nó kô chạy, bạn nào có thể nói chi tiết cho mình là nó sai chỗ nào, hướng dẫn thêm mình về cấu trúc đwoc không
    PHP Code:
    #include<stdio.h>
    #include<string.h>

    struct sv {
            
    char name[20];
            
    int masinhvien;
            
    float toan;
            
    float ly;
            
    float english;
            }
    student[40];
    void hienthi(struct sv student1);   // khai bao cai nay co dung ko may ban
    void main()
    {       
    int a,i;
        
    printf("\ntong so sinh vien ban muon nhap: ");
        
    scanf("%d",&a);
        if(
    a>=1&&a<=40)
        {
            for(
    i=0;i<a;i++)
            {
                
    printf("\nstt= %d",i+1);        fflush(stdin);
                
    printf("\n\tname: ");        gets(student[i].name);
                
    printf("\n\tma sinh vien: ");     scanf("%d",&student[i].masinhvien);
                
    printf("\n\tdiem toan: ");     scanf("%f", &student[i].toan);
                
    printf("\n\tdiem ly: ");    scanf("%f",&student[i].ly);
                
    printf("\n\tdiem enlish: ");     scanf("%f", &student[i].english);

            
    hienthi(student);
                    }
            
        }else if
        
    prinf("nhap tu 1>> 40 thui ban oi");
    }
    void hienthi(struct sv student1)
    {       
        
    int i,j;
        
    float tongdiem,trungbinh;
        for(
    i=0;i<a;;i++)                   // cai i<a lay gia tri a o dau the?
        
    {
        
    tongdiem=student1[i].toan+student1[i].ly+student1[i].english;
        
    printf("\nstt= %d",i+1);        
        
    printf("\n\tname: %s",student1[i].name);        
        
    printf("\n\tma sinh vien: %d ",student1[i].);     
        
    printf("\n\tdiem toan: %d",student1[i].toan);         
        
    printf("\n\tdiem ly: %d ",student1[i].ly);        
        
    printf("\n\tdiem enlish: %d"studen1[i].english);
        
    printf("\n\t tong diem cua hoc sinh la: %f",tongdiem);
        
    printf("\n\t diem trung binh cua hoc sinh la %f",tongdiem/3);
               
            
        }
        return;           
    //co phai ham return no nam o day ko vay

    Cho mình hỏi thêm là cách viết code như vậy nhìn có đwowcj ko
    Đã được chỉnh sửa lần cuối bởi dddzzzjjjiii : 09-06-2009 lúc 04:41 PM.

  2. #2
    Ngày gia nhập
    05 2009
    Bài viết
    25

    mình sửa lại rùi nè, bạn coi coi được chưa

    Code:
    #include<stdio.h> 
    #include<string.h> 
    
    struct sv { 
            char name[20]; 
            int masinhvien; 
            float toan; 
            float ly; 
            float english; 
            }student[40]; 
    void hienthi(sv student[],int a);  
    void main() 
    {       int a,i; 
        printf("\ntong so sinh vien ban muon nhap: "); 
        scanf("%d",&a); 
        if(a>=1&&a<=40) 
        { 
            for(i=0;i<a;i++) 
            { 
                printf("\nstt= %d",i+1);        fflush(stdin); 
                printf("\n\tname: ");        gets(student[i].name); 
                printf("\n\tma sinh vien: ");     scanf("%d",&student[i].masinhvien); 
                printf("\n\tdiem toan: ");     scanf("%f", &student[i].toan); 
                printf("\n\tdiem ly: ");    scanf("%f",&student[i].ly); 
                printf("\n\tdiem enlish: ");     scanf("%f", &student[i].english); 
    
            
                    } 
             
        }else
        prinf("nhap tu 1>> 40 thui ban oi");
    hienthi(student,a); 
    } 
    void hienthi(sv student[],int a)
    {        
        int i,j; 
        float tongdiem,trungbinh; 
        for(i=0;i<a;i++)                   
        { 
        tongdiem=student[i].toan+student[i].ly+student[i].english; 
        printf("\nstt= %d",i+1);         
        printf("\n\tname: %s",student[i].name);         
        printf("\n\tma sinh vien: %d ",student[i].);      
        printf("\n\tdiem toan: %d",student[i].toan);          
        printf("\n\tdiem ly: %d ",student[i].ly);         
        printf("\n\tdiem enlish: %d"studen[i].english); 
        printf("\n\t tong diem cua hoc sinh la: %f",tongdiem); 
        printf("\n\t diem trung binh cua hoc sinh la %f",tongdiem/3); 
                
             
        } 
       
    }

  3. #3
    Ngày gia nhập
    05 2009
    Bài viết
    25

    lúc dùng tham số hình thức trong hàm thì bạn chỉ cần khai báo biểu dữ liệu và tên tham sô thôi chứ không cần thêm chữ struct đâu
    còn cái a thì bạn pahri truyền nó cho hàm mới dùng được chứ tự dưng dùng thế thì a ở đâu ra mà tính
    hàm void hienthi không trả về giá trị nên không cần return

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

    Bạn dzjj viết code mà dùng từ ngữ nghe bùn cười wá, mình mà làm thế này thầy bụp chết
    Cái int a bạn khai báo rùi gắn cho nó = total rùi mà ko nhớ à
    Not good at Coding yet!
    But still love it

  5. #5
    Ngày gia nhập
    05 2009
    Bài viết
    25

    bạn kia gắn giá trị cho a rồi nhưng không truyền a cho hàm hienthi thì lấy a đâu mà hàm hienthi làm việc chứ

  6. #6
    Ngày gia nhập
    06 2009
    Bài viết
    9

    Mặc định Bài tập về cấu trúc trong c | Cấu trúc sinh viên???

    thanks all nhaaaaaaaaaaaaaaaaaaaaaaaaaa

    Trích dẫn Nguyên bản được gửi bởi noob Xem bài viết
    Bạn dzjj viết code mà dùng từ ngữ nghe bùn cười wá, mình mà làm thế này thầy bụp chết
    Cái int a bạn khai báo rùi gắn cho nó = total rùi mà ko nhớ à
    Trích dẫn Nguyên bản được gửi bởi edogawaconan Xem bài viết
    bạn kia gắn giá trị cho a rồi nhưng không truyền a cho hàm hienthi thì lấy a đâu mà hàm hienthi làm việc chứ
    Trích dẫn Nguyên bản được gửi bởi edogawaconan Xem bài viết
    lúc dùng tham số hình thức trong hàm thì bạn chỉ cần khai báo biểu dữ liệu và tên tham sô thôi chứ không cần thêm chữ struct đâu
    còn cái a thì bạn pahri truyền nó cho hàm mới dùng được chứ tự dưng dùng thế thì a ở đâu ra mà tính
    hàm void hienthi không trả về giá trị nên không cần return
    thanks alll nha ^^
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 10-06-2009 lúc 07:20 AM.

  7. #7
    Ngày gia nhập
    06 2009
    Bài viết
    0

    Tiện thể cho mình hỏi nhờ một tí nhá
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    
    struct sinhvien
     {
      char hoten[30];
      char diachi[30];
      float diem;
     };
    
    
    void nhapdulieu(struct sinhvien *p, int n);
    
    int main()
     {
      int kt;
      struct sinhvien sv[3];
      struct sinhvien *p;
      p=sv;                                         
    
      printf("\n Menu ");
      printf("\n 1.Nhap du lieu cho sinh vien ");
      printf("\n 2.Thoat ");
    
    
      while(1)
       {
        printf("\n Nhap vao muc can tim: ");
        fflush(stdin);
        scanf("%d",&kt);
        switch(kt)
         {
          case 1: nhapdulieu(p,3); break ;    
          case 2: return 0;
         }
       }
      getch();
     }
    
    void nhapdulieu(struct sinhvien *p, int n)
     {
      int i;
      printf("\n Nhap vao thong tin sinh vien ");
      for(i=0;i<n;i++)
       {
        printf("\n Thong tin sinh vien thu %d ",i+1);
        printf("\n Ho ten: ");
        fflush(stdin);
        gets((*(p+i)).hoten);
        printf("\n Dia chi: ");
        fflush(stdin);
        gets((*(p+i)).diachi);
        printf("\n Diem: ");
        scanf("%f",&(*(p+i)).diem);
       }
     }
    Đã được chỉnh sửa lần cuối bởi cuadien : 10-06-2009 lúc 12:25 AM. Lý do: bổ sung

  8. #8
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    642

    @cuadien:
    sv ở đây là địa chỉ của pt sv[0] của mảng sv, còn 3 là số pt bạn cần đưa vào hàm để xử lí, bạn đã học con trỏ, hàm chưa nhỉ?

  9. #9
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4.  
    5. struct sinhvien
    6. {
    7.   char hoten[30];
    8.   char diachi[30];
    9.   float diem;
    10. };
    11.  
    12.  
    13. void nhapdulieu(struct sinhvien *p, int n);
    14.  
    15. int main()
    16.  {
    17.   int kt;
    18.   struct sinhvien sv[3];
    19.  
    20.   printf("\n Menu ");
    21.   printf("\n 1.Nhap du lieu cho sinh vien ");
    22.   printf("\n 2.Thoat ");
    23.  
    24.  
    25.   while(1)
    26.    {
    27.     printf("\n Nhap vao muc can tim: ");
    28.     fflush(stdin);
    29.     scanf("%d",&kt);
    30.     switch(kt)
    31.      {
    32.       case 1:
    33.           nhapdulieu(sv,3); // truyền mảng sv vào hàm và cho biết mảng có 3 phần tử
    34.           break ;
    35.  
    36.       case 2:
    37.           return 0;
    38.      }
    39.    }
    40.   getch();
    41.  }
    42.  
    43. void nhapdulieu(struct sinhvien *p, int n)
    44.  {
    45.   int i;
    46.   float tmp;
    47.  
    48.   printf("\n Nhap vao thong tin sinh vien ");
    49.   for(i=0;i<n;i++)
    50.    {
    51.     printf("\n Thong tin sinh vien thu %d ",i+1);
    52.     printf("\n Ho ten: ");
    53.     fflush(stdin);
    54.     gets(p[i].hoten);
    55.     printf("\n Dia chi: ");
    56.     fflush(stdin);
    57.     gets(p[i].diachi);
    58.     printf("\n Diem: ");
    59.     scanf("%f",&tmp);
    60.     p[i].diem = tmp;
    61.    }
    62.  }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  10. #10
    Ngày gia nhập
    06 2009
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    @cuadien:
    sv ở đây là địa chỉ của pt sv[0] của mảng sv, còn 3 là số pt bạn cần đưa vào hàm để xử lí, bạn đã học con trỏ, hàm chưa nhỉ?

    À cái này thì em mới học nhưng về nhà gõ lại thì chưa hiểu lắm nên hỏi thôi, tiện thể cho em hỏi luôn cái phần em sửa

    Nếu mình cho p=sv tức là con trỏ chỉ vào phần tử đầu tiên của mảng đúng ko ạ
    còn cái chỗ case 1: nhapdulieu(p,3); break ; thì cái (p,3) thì p có tác dụng làm gì bác giải thích nốt hộ em cái.

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

  1. Bài tập C Bài toán về cấu trúc mảng sinh viên
    Gửi bởi kiss_123 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 02-03-2012, 11:07 AM
  2. Lập trình C Lỗi trong khi nhập mảng cấu trúc có họ tên sinh viên trong lập trình C?
    Gửi bởi trieuvan.n01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 03-01-2011, 09:51 AM
  3. Bài toán cấu trúc sinh viên
    Gửi bởi lethanhminh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 13
    Bài viết cuối: 23-06-2010, 09:51 AM
  4. cấu trúc sinh viên
    Gửi bởi maingadhvinh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 09-05-2010, 01:17 PM
  5. Mảng cấu trúc, xây dựng danh sách sinh viên
    Gửi bởi van_anh88 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 18-06-2009, 07:04 AM

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