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

Đề tài: Cách tách các chữ số trong số thập phân, giúp em với???

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

    Mặc định Cách tách các chữ số trong số thập phân, giúp em với???

    tình hình là em cần tách phần nguyên và phần thập phân của số thập phân ra thành 2 mảng để ..................... và đưa phần thập phân của 1 số thập phân bất kỳ vào mảng như VD sau
    VD : số 34.653 thì sẽ đưa vào mảng như sau 0653

    Ai biết chỉ giúp em với ,có code luôn thì tốt hơn .Thk

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Bạn nhập vào dưới dạng chuỗi rồi sử lý nó, dùng hàm atoi để chuyển sang số nguyên.

    Mình thử với số thực rồi, nó sai số nhiều quá không làm đc.

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

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Bạn nhập vào dưới dạng chuỗi rồi sử lý nó, dùng hàm atoi để chuyển sang số nguyên.

    Mình thử với số thực rồi, nó sai số nhiều quá không làm đc.
    nhưng việc phân biệt dấu , thập phân thế nào hả bác
    Đã được chỉnh sửa lần cuối bởi Devost24 : 01-04-2009 lúc 07:50 PM.

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

    bạn chia cho 1000 lấy dư ý kiến của tui đó

  5. #5
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    nhưng việc phân biệt dấu , thập phân thế nào hả bác
    Tất nhên là phần biệt bằng dấu . rồi.
    Kiểu như này.
    C Code:
    1. int i=0;
    2. while (st[i]!='\0' && st[i]!='.') {pNguyen[i]=st[i]; i++;}
    3. pNguyen[i]='\0';
    4.  
    5. int j=0;
    6. while (st[i]!='\0') {pThapPhan[j]=st[i]; i++;j++;}
    7. pThapPhan[j]='\0';

    bạn chia cho 1000 lấy dư ý kiến của tui đó
    Thử đi rồi biết, đừng ném toẹt một câu vào. Nhắc lại, với kiểu float chỉ nhập và in ra màn hình bạn đã thấy sự sai khác vì vậy tách trực tiếp là không thể chính xác.

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

    Mặc định Cách tách các chữ số trong số thập phân, giúp em với???

    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Tất nhên là phần biệt bằng dấu . rồi.
    Kiểu như này.
    C++ Code:
    1. int i=0;
    2. while (st[i]!='\0' && st[i]!='.') {pNguyen[i]=st[i]; i++;}
    3. pNguyen[i]='\0';
    4.  
    5. int j=0;
    6. while (st[i]!='\0') {pThapPhan[j]=st[i]; i++;j++;}
    7. pThapPhan[j]='\0';

    cái lấy phần nguyên tôi không ý kiến , nhưng bạn cho mình hỏi cách lấy phần thập phân trong khi st[i] khác kết thúc gán s[i] cho mảng thâp phân thứ j thì nó gán sạch các ký tự khác kết thúc kể cả dấu phẩy vào mảng thập phân à , nếu bạn muốn làm thế thì có khi gán nguyên xong bạn xoá luôn số vừa gán st[i]+=1 lúc đấy st còn lại dấu phẩy và phần thập phân , xoá nốt dấu phẩy là xong cop nguyên cái thập phân ra chỗ khác rồi trả lại st chuỗi ban đầu .

    Nhưng trên là phải xử lý = chuỗi không xử lý = số được thật à

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

    mình không biết đưa bài lên như thế nào?
    mình k làm được bài này các bác giúp mình với
    Viết hàm void FindRange(floatx[], int n, int& a, int& b) dùng để tìm khoảng [a, b] (với a, b là
    số nguyên) sao cho tất cả các thực trong mảng x đều thuộc khoảng [a, b].

  8. #8
    Ngày gia nhập
    12 2010
    Nơi ở
    Cần thơ
    Bài viết
    273

    Một số thao tác trên số và chuổi của tớ @@
    ai sài đc thì sài


    C Code:
    1. unsigned len(const char *s) //làm biếng strlen
    2. {
    3.     int i=-1;
    4.     while (s[++i]);
    5.     return i;
    6. }
    7. void copy(char *r,const char *s,unsigned n=0) //làm biếng sài strcpy, tớ còn swr dụng với mục đích khác
    8. {
    9.     if (n==0) n=len(s);
    10.     for (unsigned i=0;i<n;i++) r[i]=s[i];
    11.     r[n]=0;
    12. }
    13. void TakeIR(char *i,char *r,const char *s) //lấy phần nguyên và dư, i là nguyên,r là dư, chuổi s là chuổi đầu vào
    14. {
    15.     unsigned j=0;
    16.     while (s[j]!='.' && s[j]!=0) j++;
    17.     copy(i,s,j);
    18.     if (s[j]!=0) copy(r,s+j+1);
    19.        else r[0]=0;
    20. }
    21. unsigned ToAInt(const char *s,int *A) //Chuyển 1 chuổi số thành 1 mảng với số phần tử là k sẽ được trả về
    22. {
    23.     unsigned k;
    24.     for (k=0;s[k];k++) A[k]=s[k]-48;
    25.     return k;
    26. }
    27. unsigned ToAInt(const char *s) // hoặc Chuyển 1 chuổi số thành một số ; Cẩn thận với số lớn quá 65536 nhé
    28. {
    29.     unsigned A=0;
    30.     for (unsigned k=0;s[k];k++) A=A*10+ (s[k]-48);
    31.     return A;
    32. }
    Ai bất tài, tôi nhìn hoài chẳng thấy,
    Đi khắp phòng tôi lấy 1 tấm gương,
    Khẽ đặt lên một góc phía bức tường,
    Nhìn vào đó, tôi tận tường kẻ đó.

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

    Trích dẫn Nguyên bản được gửi bởi azurelonely Xem bài viết
    Một số thao tác trên số và chuổi của tớ @@
    ai sài đc thì sài


    C Code:
    1. unsigned len(const char *s) //làm biếng strlen
    2. {
    3.     int i=-1;
    4.     while (s[++i]);
    5.     return i;
    6. }
    7. void copy(char *r,const char *s,unsigned n=0) //làm biếng sài strcpy, tớ còn swr dụng với mục đích khác
    8. {
    9.     if (n==0) n=len(s);
    10.     for (unsigned i=0;i<n;i++) r[i]=s[i];
    11.     r[n]=0;
    12. }
    13. void TakeIR(char *i,char *r,const char *s) //lấy phần nguyên và dư, i là nguyên,r là dư, chuổi s là chuổi đầu vào
    14. {
    15.     unsigned j=0;
    16.     while (s[j]!='.' && s[j]!=0) j++;
    17.     copy(i,s,j);
    18.     if (s[j]!=0) copy(r,s+j+1);
    19.      else r[0]=0;
    20. }
    21. unsigned ToAInt(const char *s,int *A) //Chuyển 1 chuổi số thành 1 mảng với số phần tử là k sẽ được trả về
    22. {
    23.     unsigned k;
    24.     for (k=0;s[k];k++) A[k]=s[k]-48;
    25.     return k;
    26. }
    27. unsigned ToAInt(const char *s) // hoặc Chuyển 1 chuổi số thành một số ; Cẩn thận với số lớn quá 65536 nhé
    28. {
    29.     unsigned A=0;
    30.     for (unsigned k=0;s[k];k++) A=A*10+ (s[k]-48);
    31.     return A;
    32. }
    Nếu bạn ko thích comment thì coi như là những lời sau mình chưa nói nhé.
    Còn nếu thực sự bạn muốn nghe những người có chút ít exp, ngu dốt như mình comment thì mình xin gửi vào lời comment như sau
    + 7 điểm, chĩ cỡ đó thôi,mặc dù cũng khá, tại sao vậy? Nên suy nghĩ 1 cách toàn diện để đánh giá
    1. Nếu truyền NULL vào thì các hàm trên chết thẳng cẳng. So với các hàm nguyên thủy thì chưa bằng được.
    2. unsigned n=0. Tag code thì đề là C code, nhưng code thì lại là C++.... (Mà nếu đã là C++ thì đã làm theo kiểu OOP rồi chứ chẳng làm thế này)
    3. nhiều chỗ unsigned và int dùng ko có sự thống nhất. Nói chung là có vấn đề với việc sử dụng kiểu dữ liệu



    (Mình nói nếu quá lời hoặc ko phải thì mong bỏ qua cho. Chẳng phải ném gạch ném đá gì đâu. Chỉ mong sao giúp được bạn chút ít)
    ^_,^

    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

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

    Mặc định Số ->chuỗi. Sau đó xử lí chuỗi.

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    main()
    {
    float a;
    char s[20];
    printf("Nhap mot so thap phan: ");
    scanf("%f",&a);
    sprintf(s,"%f",a);
    int i=0;
    int j=0;
    printf("Phan nguyen la: ");
    while(s[i]!='\0' && s[i]!='.')
    {
    printf("%c",s[i]);
    i++;
    }
    printf("\nPhan thap phan: ");
    i++;
    while(s[i]!='\0')
    {
    printf("%c",s[i]);
    i++;
    }
    getch();
    }
    /* kết quả là tạm ổn, phần Nguyên thì chính xác,...Phần thập phân lâu lâu vẫn có sai số. Sai số ở 10^-6. ae tham khảo rùi cho ý kiến. Mình mới học nên cũng không rõ lắm.*/

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

  1. Giúp đỡ em thao tac dữ liệu trong C# LinQ
    Gửi bởi leloan.1988 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 27-02-2013, 03:04 PM
  2. Mong thầy và các anh chị giúp em bài giỏ Hàng trong asp.net
    Gửi bởi quangbinh1 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 17-11-2011, 07:30 PM
  3. Thắc mắc về class trong c++.giúp em
    Gửi bởi imminhthuan trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 21-10-2010, 07:02 PM
  4. Mã hóa ký tự trong C# như thế nào? xin giúp!
    Gửi bởi baotran trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 29-09-2010, 01:53 PM
  5. Con trỏ trong C như thế nào | Giúp mình với?
    Gửi bởi tucute89 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 13
    Bài viết cuối: 07-10-2009, 02: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