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ố 16 kết quả

Đề tài: Cách sử dụng hàm random()??

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

    Angry Cách sử dụng hàm random()??

    mình có 1 bài tập yêu cầu đưa vào 1 chuỗi ngẫu nhiên rồi in ra màn hình.
    thấy mọi người nói là sử dùng hàm random() nhưng mình ko biết cách làm thế nào.
    bây h mình muốn đưa ra ngẫu nhiên 1 chuỗi gồm 1 vài kí tự bất kì trong số các kí tự có trên bàn phím của máy tính thì code thế nào?
    hàm random() cho phép đưa ra ngẫu nhiên tối đa là bao nhiêu kí tự vậy??
    có thể ghi chuỗi ngẫu nhiên ở trên ra 1 thành file có dung lượng 1Mb được ko?

    Giúp mình nhé! cảm ơn các bạn!!!

  2. #2
    Ngày gia nhập
    08 2008
    Bài viết
    7

    bây h mình muốn đưa ra ngẫu nhiên 1 chuỗi gồm 1 vài kí tự bất kì trong số các kí tự có trên bàn phím của máy tính thì code thế nào?
    * Giải pháp : mỗi ký tự trên bàn phím đều có mã ASCII (giá trị trả về là một số nguyên), ta chỉ việc random các số đó, sau cùng chuyển thành ký tự và xuất ra màn hình.

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

    bạn có thể cho mình code đc ko?
    mình mới học C nên chưa biết nhiều lắm.

  4. #4
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Bạn có thể tham khảo code của mình sau đây:
    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;
    8.     randomize();
    9.     n=random(100);
    10.     a=(char*)malloc(n*sizeof(char));
    11.     for(int i=0;i<n;i++)
    12.     {
    13.         char c=random(128);
    14.         a[i]=c;
    15.     }
    16.     printf("\n%s",a);
    17.     getch();
    18. }

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    ủa. thế chuỗi ko cần kết thúc bằng NULL à ?



    update code: sẽ ra chuỗi dễ nhìn hơn
    PHP Code:
    #include <conio.h>
    #include <stdio.h>
    #include <alloc.h>
    #include <stdlib.h>



    main()
    {
        
    int n;char *a;
        
    randomize();
        
    n=random(100);
        
    a=(char*)malloc(n*sizeof(char));
        
    clrscr();

        for(
    int i=0;i<n;i++)
        {
            
    a[i]=65+random(58);
            if (
    a[i]>90&&a[i]<97a[i]+=10;
        }
        
    a[i]=NULL;

        
    printf("\n%s",a);
        
    getch();

    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

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

    Mặc định Cách sử dụng hàm random()??

    cảm ơn bạn nhé!!
    mình vẫn chưa rõ lắm.bạn giải thích cụ thể hơn cho mình nhữg dòng sau có tác dụng j đc ko?phần này mình kém lắm.
    giúp mình nhé.cuối tuần mình phải nộp rồi.
    1.n=random(100);

    2. a[i]=65+random(58);

    3. if (a[i]>90&&a[i]<97) a[i]+=10;

    4. a[i]=NULL;

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

    1.n=random(100); //tạo số ngẫu nhiên từ 0-99

    2. a[i]=65+random(58); // 65 là mã kí tự a , + các số từ 0 -58 sẽ được các kí tự khác tương ứng trong bảng mã ASCII
    hàm random cho số ngẫu nhiên như sau :
    C Code:
    1. int n=random(b-a+1) + a;
    2. // tạo số ngẫu nhiên từ a -> b ;

    3. if (a[i]>90&&a[i]<97) a[i]+=10;
    Ở đây là mã ASCII : kí tự từ 91-96 : là các kí tự đặc biệt

    Bảng mã ASCII
    Đã được chỉnh sửa lần cuối bởi ddhung : 12-04-2009 lúc 10:17 PM.

  8. #8
    Ngày gia nhập
    04 2009
    Bài viết
    19

    cảm ơn ddhung nhiều!mình đã hiểu hơn rồi.
    thế sao khi kết thúc vòng lặp lại có câu lệnh a[i]=NULL;có phải để kết thúc chuỗi ko?
    mỗi lần RUN thì nó sẽ đưa ra 1 chuỗi có strlen() bất kì ah?mình tưởng là nội dung thì ngẫu nhiên còn số lượng thì phải cố định chứ nhỉ???

  9. #9
    Ngày gia nhập
    06 2007
    Nơi ở
    UIT
    Bài viết
    44

    Trích dẫn Nguyên bản được gửi bởi totoise Xem bài viết
    thế sao khi kết thúc vòng lặp lại có câu lệnh a[i]=NULL;có phải để kết thúc chuỗi ko?
    mỗi lần RUN thì nó sẽ đưa ra 1 chuỗi có strlen() bất kì ah?mình tưởng là nội dung thì ngẫu nhiên còn số lượng thì phải cố định chứ nhỉ???
    Ý của Lanmang là để kết thúc chuỗi thì cho a[n]=NUll , lý do vòng lặp for chỉ chạy đến n-1, theo cấp phát động thì giá trị a[n] có giá trị rác , làm thế để mình không in ra giá trị rác này .

    Trích dẫn Nguyên bản được gửi bởi totoise Xem bài viết
    thì nó sẽ đưa ra 1 chuỗi có strlen() bất kì ah?mình tưởng là nội dung thì ngẫu nhiên còn số lượng thì phải cố định chứ nhỉ???
    n radom mà thì tất nhiên là nó chạy rồi còn muốn nhập vào hay tự đặt thì làm hàm nhập vào chứ seo đâu

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

    cho mình hỏi thêm là khi thoát khỏi vòg for các a[i] lưu thế nào mà chỉ cần 1 câu lệnh
    printf("\n%s",a);
    là có thể in đc ra hết cả chuỗi thế?mình biết %s là in ra chuỗi,còn tại sao cỗ mỗi a ko mà nó in ra đc cả đốg thì chịu.
    giải thích júp mình nhé!!!

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

  1. Kỹ thuật C Tại sao hàm random cho nhiều số thì kết quả random bị trùng lặp?
    Gửi bởi acquydem12 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 18-04-2014, 02:17 PM
  2. Hàm random không xác định trong dev-C ,cách tạo số random
    Gửi bởi khymkb trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 02-04-2013, 12:10 PM
  3. Mảng trên C cho số random có lựa chọn
    Gửi bởi maphongba008 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 31-03-2013, 09:54 PM
  4. Về hàm random
    Gửi bởi conrongchautien 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-05-2010, 09:09 PM
  5. Hàm Random
    Gửi bởi thienthan34 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 17-02-2009, 10:46 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