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

Đề tài: dếm số thuận nghịch trong FILE

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

    Mặc định dếm số thuận nghịch trong FILE

    mình có 1 bài tập là: cho 1 file trong đó có các số,hãy đếm số lần xuất hiện của các số đó và giá trị của số
    ví du file ìn.txt 11 12 13 14 11 12 13 22 33 11 1123
    hiện ra 11 3
    22 1
    33 1
    mình đã code nhưng chỉ có mỗi giá trị đầu là 11 là kq đúng?? mong mọi người góp ý giúp
    Code:
    #include<stdio.h>
    #include<conio.h>
    FILE*f=fopen("in2.txt","r");
    typedef struct so{int gt;
                      int solan;
                     };
    so ds[100];
    int sotu=0,i;
    int thng(int a)  //ham kiem tra so thuan nghich
    {
        int b=a,dao=0;
        while(a>0)
        {
                  dao=dao*10+a%10;
                  a=a/10;
        }
        if(dao==b)return 1;
        else return 0;
    }
    
    int ktra(int a)
    {
        for(i=1;i<=sotu;i++) //ham xet gia tri cua so
        if(a==ds[i].gt)return i;//neu co roi thi tra lai gia tri cua i
        else return -1;//neu chua co thi tra -1
    }
    
    main()
    {
          int a;
          while(fscanf(f,"%d",&a)!=EOF)
          {
                 if(ktra(a)==-1&&thng(a))
                 {
                  sotu++;  //kiem tra chua co gia tri thi luu gia tri moi
                  ds[sotu].gt=a;
                  ds[sotu].solan=1;
                 }
                 else ds[ktra(a)].solan++; //neu co roi thi cho + them so lan gia tri do
          }
           
           for(i=1;i<=sotu;i++)
           printf("%d  %d\n",ds[i].gt,ds[i].solan);                
           getch();
           }
    Đã được chỉnh sửa lần cuối bởi edconan93 : 01-02-2012 lúc 04:31 PM.

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

    Mình đã nhắc đi nhắc lại bạn phải tập cách viết code cho đàng hoàng.
    Bạn không chịu tập gì cả. Cứ thích viết gì thì viết, viết lung tung đọc rối mắt.
    Um Mani Padme Hum...!!

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

    Trích dẫn Nguyên bản được gửi bởi clchicken Xem bài viết
    Mình đã nhắc đi nhắc lại bạn phải tập cách viết code cho đàng hoàng.
    Bạn không chịu tập gì cả. Cứ thích viết gì thì viết, viết lung tung đọc rối mắt.
    mình có dùng tab rồi mà???

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

    Tui nhớ là đã demo và chỉ vẻ tận tình cho bạn cách thồi thụt cho đúng, đóng khóa mở hóa cho đúng rồi.
    Bạn cũng "ừ , vâng vâng em cảm ơn, em sẽ làm theo"
    Thế mà vẫn thế này.
    Um Mani Padme Hum...!!

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

    Trích dẫn Nguyên bản được gửi bởi clchicken Xem bài viết
    Tui nhớ là đã demo và chỉ vẻ tận tình cho bạn cách thồi thụt cho đúng, đóng khóa mở hóa cho đúng rồi.
    Bạn cũng "ừ , vâng vâng em cảm ơn, em sẽ làm theo"
    Thế mà vẫn thế này.
    thế để mình xem lại, minh đã sửa đúng quy tắc lệnh con thụ vào lệnh mẹ,lệnh như nhau thẳng hàng mà? bạn xem giúp mình bài này với
    Đã được chỉnh sửa lần cuối bởi edconan93 : 01-02-2012 lúc 04:43 PM.

  6. #6
    Ngày gia nhập
    10 2011
    Nơi ở
    quy nhon city
    Bài viết
    7

    Mặc định dếm số thuận nghịch trong FILE

    fscanf(f,"%d",&a)
    cái này sử dụng như thế nào thế bác.
    HỌC , HỌC NỮA , HỌC MÃI ..... ĐUỐI NGHỈ ..... ĐÚP HỌC LẠI

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

    Trích dẫn Nguyên bản được gửi bởi mfvodka107 Xem bài viết
    cái này sử dụng như thế nào thế bác.
    cái này là để gán giá trị cho a từ 1 FILE mà,con trỏ f đang ở FILE ấy

  8. #8
    Ngày gia nhập
    10 2011
    Nơi ở
    quy nhon city
    Bài viết
    7

    thế nó hoạt động như thế nào thế.

    việc gán này nó diễn ra từ đầu đến cuối luôn hay sao ?

    như trong ví dụ của bác ấy ,số 11 được đặt rời rạc không liên tục nhưng nó ra kết quả đúng còn các số khác thì nó lại ra kết quả chỗ nào nó tìm thấy thôi chứ nó không cộng lại và cho kết quả như mong muốn.
    HỌC , HỌC NỮA , HỌC MÃI ..... ĐUỐI NGHỈ ..... ĐÚP HỌC LẠI

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

    Trích dẫn Nguyên bản được gửi bởi mfvodka107 Xem bài viết
    thế nó hoạt động như thế nào thế.

    việc gán này nó diễn ra từ đầu đến cuối luôn hay sao ?

    như trong ví dụ của bác ấy ,số 11 được đặt rời rạc không liên tục nhưng nó ra kết quả đúng còn các số khác thì nó lại ra kết quả chỗ nào nó tìm thấy thôi chứ nó không cộng lại và cho kết quả như mong muốn.
    nó sẽ gán giá trị cho a từ đầu cho đến khi kết thúc FILE mỗi giá trị cách nhau bởi khoảng cách hoạc xuống dòng

  10. #10
    Ngày gia nhập
    10 2011
    Nơi ở
    quy nhon city
    Bài viết
    7

    Code:
    #include<stdio.h>
    #include<iostream>
    #include<conio.h>
    #include<iomanip>
    using namespace std;
    FILE*f=fopen("in2.txt","r");
    typedef struct so{
                      int gt;
                      int solan;
                     };
    so ds[100];
    int sotu=0,i;
    int thng(int a)  //ham kiem tra so thuan nghich
                   {
                           int b=a,dao=0;
                   while(a>0){
                              dao=dao*10+a%10;
                              a=a/10;
                              }
                   if(dao==b)return 1;
                   else return 0;
                   }
    int ktra(int a)
    {
                    int b=-1;
                    for(i=1;i<=sotu;i++)//ham xet gia tri cua so
                    if(a==ds[i].gt) b=i;//neu co roi thi tra lai gia tri cua i
                    return b;
                    
    }
    
    int main()
    {     
          int a;
           while(fscanf(f,"%d",&a)!=EOF)
           {                 
           if(ktra(a)== -1 && thng(a))
           {
           sotu++;  //kiem tra chua co gia tri thi luu gia tri moi
           ds[sotu].gt=a;
           ds[sotu].solan=1;
           }
           else  ds[ktra(a)].solan++; //neu co roi thi cho + them so lan gia tri do 
           }  
           for(i=1;i<=sotu;i++){
           cout<<ds[i].gt<<setw(3)<<ds[i].solan<<'\n';
           }                
           getch();
           return 0;
           }
    nè bác mình code lại một chút rồi đó .nó chạy ổn rồi.
    coi lại rút kinh nghiệm đi nhé.
    HỌC , HỌC NỮA , HỌC MÃI ..... ĐUỐI NGHỈ ..... ĐÚP HỌC LẠI

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

  1. Nghệ thuật Traps Code trong Visual C++
    Gửi bởi ZCoder87 trong diễn đàn Tutorials và Thủ thuật Visual C++
    Trả lời: 15
    Bài viết cuối: 15-04-2013, 01:18 PM
  2. Đếm các xâu thuận nghịch xuất hiện trong file và số lần xuất hiện của các xâu đó
    Gửi bởi orchidshl1 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 19-09-2012, 10:47 AM
  3. cách tìm đối số trong giải thuật euclid mở rộng tìm số nghịch đảo
    Gửi bởi junkilo trong diễn đàn Thắc mắc chung
    Trả lời: 0
    Bài viết cuối: 05-06-2012, 08:12 PM
  4. Nghệ Thuật Phối Màu Sắc trong Thiết Kế Và In Ấn
    Gửi bởi thanhhung2013 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 15-09-2011, 03:29 PM
  5. Kỹ thuật định nghĩa chồng overloading trong lập trình C++
    Gửi bởi hiepsithong 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: 04-01-2011, 07: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