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

Đề tài: Tách số trong chuỗi và tính tổng !

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

    Post Tách số trong chuỗi và tính tổng !

    Hiện nay mình đang có bài tập yêu cầu nhập một chuỗi gồm số và các dấu ";" và tách các số ra tính tổng , các số đó được phân cách nhau bằng các dấu ";". Mình nghĩ mãi mà chưa ra được hướng giải quyết. Ai có thể giúp đỡ mình được ko. Mà yêu cầu bắt dùng vòng for chứ không được dùng vòng while.

    VD : Nhập chuỗi 10;11;12 thì tổng là 33
    Đã được chỉnh sửa lần cuối bởi n0b0dy.n0l0v3 : 21-09-2011 lúc 02:45 PM.

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    3

    chuyển số về dạng thứ tự của mã ascii rồi sau đó tách đc số rồi thì + nó lại thôi
    pascal cũng có bài này

  3. #3
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    Code:
    // code chỉnh sửa lại từ http://www.cplusplus.com/reference/clibrary/cstring/strtok/
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char str[] ="1;2;3;4;5";
      char * pch;
      pch = strtok (str,";");
      while (pch != NULL)
      {
        printf ("%s\n",pch);
        pch = strtok (NULL, ";");
      }
      return 0;
    }
    output:
    1
    2
    3
    4
    5

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

    Nếu không thích dùng các hàm có sẵn thì đây:

    C Code:
    1. int sum_tokens(char const *s)
    2. {
    3.     int sum=0, x=0;
    4.     for (; *s; ++s) {
    5.         if (';' == *s) {sum += x; x = 0;}
    6.         if (*s >= '0' && *s <= '9') x = 10*x + *s - '0';
    7.     }
    8.     return sum + x;
    9. }

  5. #5
    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 fbchicken Xem bài viết
    Nếu không thích dùng các hàm có sẵn thì đây:

    C Code:
    1. int sum_tokens(char const *s)
    2. {
    3.     int sum=0, x=0;
    4.     for (; *s; ++s) {
    5.         if (';' == *s) {sum += x; x = 0;}
    6.         if (*s >= '0' && *s <= '9') x = 10*x + *s - '0';
    7.     }
    8.     return sum + x;
    9. }
    Ngon!
    Tư tưởng tốt, code ngon.
    Có tiềm năm lắm.
    ^_,^

    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

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

  1. Lập trình C Thay thế chuỗi s1 trong chuỗi s bằng chuỗi s
    Gửi bởi duytue 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: 23-09-2011, 04:16 PM
  2. thay thế chuỗi con thứ i trong chuỗi mẹ bằng 1 chuỗi khác
    Gửi bởi nhat1811 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: 06-08-2011, 08:25 AM
  3. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  4. Trả lời: 7
    Bài viết cuối: 21-03-2011, 09:59 PM
  5. xem một từ trong chuỗi là một chuỗi con, sắp xếp các chuỗi con theo thứ tự tăng dần
    Gửi bởi qpkdct1101 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 20-01-2011, 08:22 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