Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 28 kết quả

Đề tài: đếm số từ xuất hiện trong xâu nhập từ bàn phím?

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

    Mặc định đếm số từ xuất hiện trong xâu nhập từ bàn phím?

    Mình có đoạn chương trình thế này.
    Khi mình nhập xâu: ha noi . Thì số ký tự =3. Mọi người giải thích giùm mình với.
    Trước và sau 2 từ này có xuất hiện nhiều dấu cách.

    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    int main()
    {

    char s[255];
    int i=0,j=0,k=0,d=0,a=0,d1=0,d2=0;
    cout<<"Nhap xau S: ";
    gets(s);
    while (s[a]!='\0')
    a++;
    if (s[0]==' ')
    d1=1;
    if (s[a]==' ')
    d2=1;
    if ((d1==1)&&(d2==1))
    d=1;
    if ((d1==0)&&(d2==1))
    d=1;
    while (s[i]!='\0')
    {
    while (s[i]==' ')
    i++; // cout<<i<<endl;
    j=i;
    while ((s[j]!=' ')&&(s[j]!='\0'))
    j++; // cout<<j<<endl;
    k++; // cout<<k;
    i=j;
    }
    cout<<"\n Co "<<k-d<<" Tu";
    getch();
    }
    Đã được chỉnh sửa lần cuối bởi miyuto : 23-01-2011 lúc 12:03 PM. Lý do: Đoạn code chưa đủ.

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    lần sau bạn cho code vào thẻ nhé ! copy kiểu này về sửa mệt lắm !
    @ topic: đề bài như thế nào thía , bạn có thể nói rõ đc ko ?

  3. #3
    Ngày gia nhập
    09 2010
    Nơi ở
    Linux-Ubuntu
    Bài viết
    217

    dùng tạm bài này:
    C Code:
    1.  
    2. #include<stdio.h>
    3. #include <string.h>
    4. void DeleteCharacter(int vitri,char *s){
    5.   int i;
    6.   for(i = vitri;i<=strlen(s);i++){
    7.     s[i]=s[i+1];        // dich chuyen xau
    8.   }
    9. }
    10.  
    11. int CountWord(char *s){
    12.   int i,j=0,count=0;
    13.   // truong hop xau toan ki tu trong
    14.   for(i=0;i<=strlen(s);i++)                
    15.     if(s[i]==' ')
    16.       j++;               //dem so khoang trang
    17.  
    18.  
    19.   if(j==strlen(s))
    20.     return 0;
    21.   else{          // truong hop xau co it nhat 1 tu
    22.     for(i=0;i<=strlen(s);i++)
    23.       if(s[i]==' '&& s[i+1]!=' ')      //dem so khoang trang giua cac tu
    24.     count ++;
    25.     return count+1;      // so tu bang so khoang trang cong 1
    26.   }
    27. }
    28. int main()
    29. {
    30.   char s[255];
    31.   printf(" nhap xau s: ");
    32.   gets(s);
    33.   while(s[0]==' '){          //neu ma ki tu dau tien la trong thi xoa di
    34.     DeleteCharacter(0,s);   // xoa ki tu dau tien
    35.   }
    36.   while(s[strlen(s)-1]==' '){         // xet tu cuoi xau, neu ki tu cuoi cung
    37.     DeleteCharacter(strlen(s)-1,s);   // xoa ki tu trong o phia cuoi xau
    38.   }
    39.   int Count=0;
    40.   Count = CountWord(s);
    41.   printf("so tu trong xau la:%d ",Count);
    42. }
    ++Sự Học Không Bao Giờ Là Muộn++
    ---Sướng Thì Ta Làm, Thích Thì Sẽ Được---
    ......Đôi khi bỏ học cũng là một bước đột phá...

    ***HỘI NHỮNG NGƯỜI PHÁT CUỒNG VÌ LINUX***

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

    uhm. Mình biết rồi.
    Đề bài: Viết chương trình đếm số từ trong xâu nhập từ bàn phím.

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

    Mình hiểu đoạn code của bạn nmt1402.
    Cảm ơn bạn nhiều nha.

  6. #6
    Ngày gia nhập
    11 2010
    Nơi ở
    recycle bin
    Bài viết
    59

    Mặc định đếm số từ xuất hiện trong xâu nhập từ bàn phím?

    Trò trẻ con mà làm phức tạp,nhức mắt quá.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4. int main()
    5. {
    6.     char s[255];
    7.     int tu=0,i;
    8.     printf("\nNhap xau s: ");
    9.     gets(s);
    10.     strcat(s," ");
    11.     for(i=1;i<strlen(s);i++)
    12.     {
    13.         if (s[i]==' ' && ((s[i-1]>=65&&s[i-1]<=90)||(s[i-1]>=97&&s[i-1]<=122))) tu=tu+1;
    14.     }
    15.     printf("\nso tu trong xau la:%d ",tu);
    16.     getch();
    17. }

  7. #7
    Ngày gia nhập
    03 2010
    Nơi ở
    Nơi nào đó trong vũ trụ
    Bài viết
    550

    @caothu159:
    Giờ thì cái nào là "phức tạp", cái nào là "nhức mắt" đây.
    Code của bạn có mấy cái số tối nghĩa là: 65,90,97,122
    Lại thêm không có chú thích gì nữa chơ.
    Gió thu lạnh lẽo hắt hiu lòng!

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

    Trích dẫn Nguyên bản được gửi bởi caothu159 Xem bài viết
    Trò trẻ con mà làm phức tạp,nhức mắt quá.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4. int main()
    5. {
    6.     char s[255];
    7.     int tu=0,i;
    8.     printf("\nNhap xau s: ");
    9.     gets(s);
    10.     strcat(s," ");
    11.     for(i=1;i<strlen(s);i++)
    12.     {
    13.         if (s[i]==' ' && ((s[i-1]>=65&&s[i-1]<=90)||(s[i-1]>=97&&s[i-1]<=122))) tu=tu+1;
    14.     }
    15.     printf("\nso tu trong xau la:%d ",tu);
    16.     getch();
    17. }
    chi phí cao
    thay đổi dữ liệu đầu vào << ko tốt
    có khả sinh lỗi 2 loại lỗi runtime khi chuỗi nhập vào >=254 kí tự

  9. #9
    Ngày gia nhập
    01 2011
    Bài viết
    52

    case : "toi co 12000 dong"
    chỉ có 3 word

  10. #10
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trước khi giải bài này, cần phải định nghĩa rõ ràng thế nào là một từ.
    Câu:
    "Toi khong co viec lam da 3 thang. Toi ngheo,ngheo lam"
    Đếm ra được bao nhiều từ?

    C Code:
    1. // macro cho biết ký tự có phải thuộc về một từ hay không
    2. #define KTTU(c) ( (c)>='0' && (c)<='9' || (c)>='A' && (c)<='Z' || (c)>='a' && (c)<='z' )
    3.  
    4. // giả sử đã có chuỗi str[]
    5.  
    6. int soTu = soKT = 0; // số từ đếm được và số ký tự của từ đang xét
    7. char *c = str; // con trỏ đọc chuỗi
    8. while (1)
    9. {
    10.    if (KTTU(*c)) // còn trong từ, tăng số ký tự
    11.       soKT++;
    12.    else // hết từ, xét số ký tự và reset
    13.    {
    14.       if (soKT > 0) soTu++;
    15.       if (*c == '\0') break; // hết chuỗi
    16.       soKT = 0;
    17.    }
    18.    c++;
    19. }

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

  1. Lập trình C++ Mình muốn hỏi về bài toán tìm số lần xuất hiện của ký tự nhiều nhất trong chuỗi và số lần xuất hiện
    Gửi bởi ducky 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: 06-09-2013, 11:17 AM
  2. Nhập và xuất ký tự trong C
    Gửi bởi eddydn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 18
    Bài viết cuối: 01-09-2013, 12:03 AM
  3. Lập trình C Xuất nhập file trong C kết quả xuất ra không đúng?
    Gửi bởi lamhoang100 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 05-06-2013, 05:38 PM
  4. code nhập xuất học sinh trong c-free thì chạy dc ,còn trong visual thì ko
    Gửi bởi art_mu trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 2
    Bài viết cuối: 08-02-2012, 10:37 PM
  5. Bài tập C Tìm các từ xuất hiện nhiều nhất trong câu với OOP, làm thế nào hay nhất?
    Gửi bởi j3amboo trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 14-10-2011, 08:19 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