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

Đề tài: Tìm mẫu chung của một dẫy số

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

    Mặc định Tìm mẫu chung của một dẫy số

    code tìm mẫu chung của 1 dãy số mấy bạn coi dc không góp ý dùm mình với nhìn nó hơi khó đọc đó ;
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void main()
    4. {
    5.     int i=1,y,max,a[100],t,k,ds=0,tt=1,n=0,max1,z=0;
    6.     printf("nhap so phan tu");
    7.     scanf("%d",&y);
    8.     printf("nhap so thu 1");
    9.     scanf("%d",&t);
    10.         max=t;
    11.     while(i<y)
    12.         {
    13.     printf("nhap so thu %d",(i+1));
    14.     scanf("%d",&k);
    15.     a[ds]=k;
    16.     if(max>=a[ds])
    17.     max=a[ds];
    18.     ds++;
    19.     i++;
    20.     }
    21.     max1=max;
    22.     while(tt<=max1)
    23.     {
    24.         while(n<y)
    25.         {
    26.             if(a[n]%tt==0)
    27.             {
    28.                 z=z+1;
    29.             }
    30.         n++;
    31.         if(z==y)
    32.         printf("mau chung cua day so %d",tt);
    33.         }
    34.        
    35.     tt++;
    36.     }
    37. }
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 21-03-2009 lúc 10:18 PM.

  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    quan binh thanh
    Bài viết
    36

    mẫu thì chỉ dùng cho phân số thôi mà.

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

    @trungvn222: Bỏ code vào tag code, mình nhớ đây không phải là lần đầu được nhắc.

    @nguoingu: Hạn chế spam trên diễn đàn nhé, post bài cho có chât lượng chút đi.

    Code trên quả thực không hiểu rõ ý đầu bài. Code thì hoàn toàn không ổn.

    - Bạn đang tìm min trong khi đặt tên biến là max.
    - Giá trị đầu tiên nhập vào t và không đưa vào mảng a.
    - Bạn cần tìm mẫu chung của các giá trị nhập vào, nhưng mảng nhập vào là mảng số nguyên, nghiễm nhiên mẫu chung là 1.
    - Còn lại về code thì không hiểu ý tưởng của ban, tên biến có phần lung tung nên rất khó theo rõi. Tốt hơn bạn có thể nói qua về ý tưởng bằng lời được không.

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

    sr nha ,lần sau rut kn y tuong của mình là ,đầu tiên mình nhập số phần tử cần tìm mẩu chung ,luư nó vào 1 mảng,sau đó tìm số min trong mảng đó,sau đó cho nó chạy từ 1>>>min,sau do sét từng số trong mảng coi nó co chia hết cho 1>>>min hay ko,ta làm thêm 1 biến đếm nửa ,nếu mảng phần tử mà mình muốn tìm mẩu chung thì nó sẽ phải chia hết cho 1 số bất kì từ (1>>>min), thì tất nhiên biến đếm sẽ=số phần tử , vậy đó mấy bạn coi rối góp ý kiến nha cảm ơn
    Đã được chỉnh sửa lần cuối bởi trungvn222 : 22-03-2009 lúc 08:40 AM.

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

    Trích dẫn Nguyên bản được gửi bởi trungvn222 Xem bài viết
    sr nha ,lần sau rut kn y tuong của mình là ,đầu tiên mình nhập số phần tử cần tìm mẩu chung ,luư nó vào 1 mảng,sau đó tìm số min trong mảng đó,sau đó cho nó chạy từ 1>>>min,sau do sét từng số trong mảng coi nó co chia hết cho 1>>>min hay ko,ta làm thêm 1 biến đếm nửa ,nếu mảng phần tử mà mình muốn tìm mẩu chung thì nó sẽ phải chia hết cho 1 số bất kì từ (1>>>min), thì tất nhiên biến đếm sẽ=số phần tử , vậy đó mấy bạn coi rối góp ý kiến nha cảm ơn
    Kêu người ta đọc code... chẳng khác nào giết người. Bạn cứ nói thuật toán rồi mọi người góp ý như vậy hay hơn là đọc code
    Thuật toán bạn cũng dc rùi. But theo tôi thì cho chạy từ min về 1 ^^ khi tất cả cùng chia hết thì dứt vòng lặp

  6. #6
    Ngày gia nhập
    05 2008
    Bài viết
    224

    Mặc định Tìm mẫu chung của một dẫy số

    C Code:
    1.  printf("nhap so thu 1");
    2.     scanf("%d",&t);
    3.         max=t;
    4.     while(i<y)
    5.         {
    6.     printf("nhap so thu %d",(i+1));
    7.     scanf("%d",&k);
    8.     a[ds]=k;
    chưa thấy ai nhập mảng thế này !
    chỗ này
    C Code:
    1. if(max>=a[ds])
    2.     max=a[ds];
    3.     ds++;
    4.     i++;
    theo bạn nói là tìm min . nhưng hình như bạn đang tìm max .
    cuối cùng
    C Code:
    1.   int i=1,y,max,a[100],t,k,ds=0,tt=1,n=0,max1,z=0;
    sao dùng lắm biến thế này?
    Đã được chỉnh sửa lần cuối bởi lethanh : 21-04-2009 lúc 08:53 PM.
    Em có thấy nắng vàng kỷ niệm
    Hạ ngồi ru thanh thản những môi cười
    Thuở ngồi ngóng tay choàng tay nỗi nhớ
    Vin tay vào tháng năm chơi vơi...

  7. #7
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Theo ý tưởng và đoạn code của bạn, tôi thấy chưa ổn nếu mẫu chung không tồn tại thì sao? Bạn nói rằng tồn tại pt của mảng chia hết cho tất các số từ 1 cho đến min thì pt đó là mẫu chung phải không? Vd mảng sau gồm toàn số nguyên tố 7, 11, 13, 23 thì sao? Thì tt==1. Còn nữa nếu min=0 hoặc z!=y (cụ thể z<y) thì nó không in gì hết vì đk trong while là tt>=min (tt ban đầu ==1) và đk trong if là z==y tức tất cả pt phải chia hết cho các số từ 1 đến min! thì mới thông báo ra màn hình (chưa kể có thể thông báo nhiều lần). Mà trong code, bạn chưa có thông báo là không có mẫu chung, Vậy bạn cho rằng luôn tồn tại pt chia hết cho tất cả các số từ 1 đến min à? Tôi thấy đây là thuật toán tìm UCLN.
    Đã được chỉnh sửa lần cuối bởi trungkien45 : 22-03-2009 lúc 12:09 PM.

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

    mấy bạn ơi mình sr nha ,mình hiểu nhầm,mình dang cần tìm ước chung của 1 dãy số

  9. #9
    Ngày gia nhập
    02 2009
    Nơi ở
    105 Lô P c/c ngô gia tự P.02 Q.10 TP.hcm
    Bài viết
    37

    sao không dùng giải pháp tìm BSTrung nhỏ nhất trời
    thuật Toan Euclide : tim UCLN(A,B) thuat toan noi vay ne` : bội chung nhỏ nha^t=UCLN(B,AmodB);
    Đã được chỉnh sửa lần cuối bởi Phamvanla19 : 21-04-2009 lúc 03:51 PM.

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

    Cả Uscln và Bcsnn đây bạn ah
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<math.h>
    4. int Uscln(int x,int y);
    5. int Bscnn(int x,int y);
    6. void main()
    7. {
    8. int x,y,p,q,a[50],n;
    9. clrscr();
    10. printf("\n So do can nhap n=");scanf("%d%*c",n);
    11. printf("\n Nhap %d so:",n);
    12. printf("\n           x=");scanf("%d%*c",&x);
    13. printf("\n           y=");scanf("%d%*c",&y);
    14. p=Uscln(x,y);
    15. q=Bscnn(x,y);
    16. printf("\n Uoc so chung lon nhat cua 2 so la: %d",p);
    17. printf("\n Boi so chung lon nhat cua 2 so la: %d",q);
    18. getch();
    19. }
    20. int Uscln(int x,i
    21. nt y)
    22. {
    23. int r,b;
    24. if (x>=y) {
    25.       b=y;
    26.       r=x%b;
    27.       }
    28. else {
    29.      b=x;
    30.      r=y%b;
    31.      };
    32. if (r!=0) return Uscln(b,r); else return b;
    33. }
    34. int Bscnn(int x,int y)
    35. {
    36. int z;
    37. z=x*y/Uscln(x,y);
    38. return z;
    39. }

    Về ý tưởng thì như thế này: lấy a : b dư r, nếu r=0 thì Uscln là b, nếu ko lấy b : r.... đến khi dc số dư =0 thì dừng và số chia cuối cùng là Ucln
    Đây chỉ là các hàm đối với 2 số nên nếu bạn muốn dùng với N số thì dùng thêm hàm này nhé
    Code:
    long int nso(int *a,int n)
    {
    int i;long int z;
    z=Uscln(a+1,a+2);
    for (i=3;i<=n;i++) z=Uscln(z,a+i);
    return z;
    }
    Đã được chỉnh sửa lần cuối bởi Mingyu : 21-04-2009 lúc 10:12 PM.

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

  1. @Chung cư mini mỹ đình ,chung cư làng bún phú đô, Chung cư diện tích nhỏ
    Gửi bởi ephat_tt86 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: 18-11-2011, 10:29 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