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

Đề tài: Tự động nhập kí tự vào struct

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

    Mặc định Tự động nhập kí tự vào struct

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<stdlib.h>
    4. typedef struct  bangluong
    5. {
    6.     char ten[100];
    7.     float hsl,l;
    8.     int pc;
    9. };
    10. bangluong*l,tam;
    11. void nhap(bangluong*l,int n)
    12. {
    13.     int i;
    14.     for(i=0;i<n;i++)
    15.     {
    16.         fflush(stdin);
    17.         printf("\nNhap ten nhan vien thu %d: ",i+1);
    18.         gets(l[i].ten);
    19.         fflush(stdin);
    20.         l[i].hsl=rand()%4-0.5;
    21.         l[i].pc=rand()%1000;
    22.         l[i].l=l[i].hsl*830+l[i].pc;
    23.     }
    24. }
    25. void xuat(bangluong*l,int n)
    26. {
    27.     int i;
    28.     for(i=0;i<n;i++)
    29.     {
    30.         printf("\nNhan vien %s",l[i].ten);
    31.         printf("\tHe so luong= %f",l[i].hsl);
    32.         printf("\tPhu cap= %d",l[i].pc);
    33.         printf("\tLuong= %f\n",l[i].l);
    34.     }
    35. }
    36. void max(bangluong*l,int n)
    37. {
    38.     float max=l[0].l;
    39.     int i;
    40.     for(i=0;i<n;i++)
    41.     {
    42.         if(l[i].l>max) max=l[i].l;
    43.     }
    44.     for(i=0;i<n;i++)
    45.     {
    46.         if(l[i].l==max)
    47.         printf("\n\n\n%s co luong cao nhat=%f",l[i].ten,l[i].l);
    48.     }
    49. }
    50. void sapxep(bangluong*l,int n)
    51. {
    52.     bangluong tam;
    53.     int i,j;
    54.     for(i=0;i<n-1;i++)
    55.     {
    56.         for(j=i+1;j<n;j++)
    57.         {
    58.             if(l[i].l>l[j].l)
    59.             {
    60.                 tam=*(l+i);
    61.                 *(l+i)=*(l+j);
    62.                 *(l+j)=tam;
    63.             }
    64.         }
    65.     }
    66. }
    67. void phucap(bangluong*l,int n)
    68. {
    69.     int dem=0,i,j;
    70.     for(i=0;i<n;i++)
    71.     {
    72.     if(l[i].hsl<3)
    73.     {
    74.             dem++;
    75.                 if(dem<=((n/10)+1))
    76.                     printf("\n\n%s co luong duoc tang phu cap vi co he so luong <3",l[i].ten); 
    77.     }
    78.     }
    79. }
    80. main()
    81. {
    82.     int n,i,j;
    83.     printf("Nhap so luong nhan vien : ");
    84.     scanf("%d",&n);
    85.     l=(bangluong*)malloc(n*sizeof(bangluong));
    86.     nhap(l,n);
    87.     system("cls");
    88.     printf("\nBang luong nhan vien la : \n\n");
    89.     xuat(l,n);
    90.     sapxep(l,n);
    91.     printf("\n\n Bang luong sau khi sap xep la : \n\n");
    92.     xuat(l,n);
    93.     phucap(l,n);
    94.     getch();
    95. }
    Trong code này thì phần tên nhân viên là được nhập từ người dùng .Nhưng em em vẫn chưa hài lòng mà muốn mọi thứ đều được tự động hết .Có nghĩa là chỉ cần nhập số n ( số nhân viên ) .Sẽ phát sinh ra n chuỗi kí tự thay cho n tên nhân viên mà ta phải nhập vào .Mong các cao nhân chỉ giáo cho em với ak

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

    Mình ko biết trong C có hàm nào có thể sinh chuỗi tự động ko .
    Nhưng có thể làm cách này:
    Như auto mảng vậy: Mỗi phần tử của chuỗi ta cho auto 1 số ASCII trong các đoạn 'A' -> 'Z' , 'a' ->'z'. Cuối chuỗi ta gắn NULL vào
    Vậy là ok
    Um Mani Padme Hum...!!

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

    Trích dẫn Nguyên bản được gửi bởi clchicken Xem bài viết
    Mình ko biết trong C có hàm nào có thể sinh chuỗi tự động ko .
    Nhưng có thể làm cách này:
    Như auto mảng vậy: Mỗi phần tử của chuỗi ta cho auto 1 số ASCII trong các đoạn 'A' -> 'Z' , 'a' ->'z'. Cuối chuỗi ta gắn NULL vào
    Vậy là ok
    nhưng anh ơi .làm thế nào để tự đông sinh mảng ( giả sử mảng 5 số ASCII ) rồi chuyển mảng này thành kí tự và nhập vào nv[i].ten được ak .E cũng có y tưởng như thế này nhưng chưa tìm ra được hướng giải quyết lên mới lên đây hóng cách giải quyết của các thánh ak .
    Nếu được bác có thể demo cái code sinh kí tự ngẫu nhiên vào struc giúp em với a

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

    Thế bạn đã random dc 1 mảng số nguyên bình thường chưa ???
    Giao cho bạn 1 cái mảng int a[100]; có kích thước n.
    Bạn hãy đẩy dữ liệu random vào từng phần tử của a. Bạn làm dc chứ ? (Chưa làm dc cái này thì khoan nghĩ gì đến chuỗi chiếc rồi kí tự này nọ đã, tẩy ra hết khỏi não đi).
    Sinh 1 mảng ngẫu nhiên. Chỉ thế thôi.

    Sinh mảng ngẫu nhiên dc rồi thì cứ thế mà sinh chuỗi ngẫu nhiên, tương tự. Chỉ khác ở chỗ là các số random phải ở trong khoảng từ 'a'->'z' , 'A'->'Z' thế thôi :|
    Ký tự char thì thực chất cũng chỉ là 1 số int, chả vấn đề gì cả
    Um Mani Padme Hum...!!

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

    Trích dẫn Nguyên bản được gửi bởi clchicken Xem bài viết
    Thế bạn đã random dc 1 mảng số nguyên bình thường chưa ???
    Giao cho bạn 1 cái mảng int a[100]; có kích thước n.
    Bạn hãy đẩy dữ liệu random vào từng phần tử của a. Bạn làm dc chứ ? (Chưa làm dc cái này thì khoan nghĩ gì đến chuỗi chiếc rồi kí tự này nọ đã, tẩy ra hết khỏi não đi).
    Sinh 1 mảng ngẫu nhiên. Chỉ thế thôi.

    Sinh mảng ngẫu nhiên dc rồi thì cứ thế mà sinh chuỗi ngẫu nhiên, tương tự. Chỉ khác ở chỗ là các số random phải ở trong khoảng từ 'a'->'z' , 'A'->'Z' thế thôi :|
    Ký tự char thì thực chất cũng chỉ là 1 số int, chả vấn đề gì cả
    em nói thế này bác đừng mắng em nhé .Cái sinh mảng chuỗi ngẫu nhiên và sn ra bình thường thì em hoàn toàn làm được .Nhưng cái em bí ở đây là cho nó vào nv[i].ten thế nào .
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. #include <alloc.h>
    4. #include <stdlib.h>
    5. main()
    6. {
    7.     int n;char *a,x;
    8.     do
    9.     {
    10.        
    11.         n=rand()%100;
    12.     a=(char*)malloc(n*sizeof(char));
    13.     for(int i=0;i<n;i++)
    14.     {
    15.         char c=rand()%255;
    16.         a[i]=c;
    17.     }
    18.     puts(a);
    19.     printf("\nNhap t de tiep tuc : ");
    20.     fflush(stdin);
    21.     scanf("%c",&x);
    22.     }while(x=='t'||x=='T');
    23.     getch();
    24. }

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

    Mặc định Tự động nhập kí tự vào struct

    nv[i].ten là gì ? Là 1 chuỗi. (mảng)
    Vậy ta có thể thực hiện làm việc với nó như thế nào ??
    nv[i].ten[0] , nv[i].ten[1] ... nv[i].ten[cuối] ... ?? OK ?
    NÓi đến đây chắc bạn đã hiểu dc vấn đề

    Đừng nên quên: Ham làm random xong mà quên khóa chuỗi = kí tự NULL cuối chuỗi đấy nhé . Nhắc hoài rồi mà lát build code lên bị dính cái lỗi ko có ký tự NULL cuối chuỗi thì tự quỳ lên vỏ mít, úp mặt vào tường nhé

    P/s : Không quote lại bài viết liền trên
    Đã được chỉnh sửa lần cuối bởi clchicken : 11-01-2012 lúc 03:09 PM.
    Um Mani Padme Hum...!!

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

    Em sửa lại rồi ợ .Em không biết mong các bác thông cảm

    Bác đúng là tình yêu của đời em ợ .Em xin cảm ơn bác .hé hé
    Đã được chỉnh sửa lần cuối bởi giang92 : 11-01-2012 lúc 03:15 PM.

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

    Ối ... xê ra, tui ko có bị gay
    Sao vẫn quote bài viết liền trên thế ?? Muốn bị mấy "cú vọ" BQT vào hốt ra đảo ở với khỉ hả bạn
    Um Mani Padme Hum...!!

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

  1. Lỗi khi nhập dữ liệu cho struct
    Gửi bởi trunghieu974 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 25-12-2013, 09:07 PM
  2. Kỹ thuật C nhập xuất với struct học sinh bị trôi việc nhập không biết nguyên nhân tại đâu
    Gửi bởi Hades_Huynh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 22-11-2013, 11:12 PM
  3. Bài tập C++ làm sao truy xuất biến của struct lồng trong struct
    Gửi bởi quangnam.tamky trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 10-04-2013, 05:22 PM
  4. Lập trình C Vấn đề về nhập file từ txt vào mãng có sử dụng Struct
    Gửi bởi hairvn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 15-02-2012, 06:52 PM
  5. Sắp xếp phân số sử dụng Struct để nhập. Xin hỏi?
    Gửi bởi hvcuongit 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: 15-07-2010, 06:12 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