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

Đề tài: Sữa Giùm Mình Phần Uscln Sai Chỗ Nào

  1. #1
    Ngày gia nhập
    01 2008
    Nơi ở
    q4
    Bài viết
    1

    Wink Sữa Giùm Mình Phần Uscln Sai Chỗ Nào

    1/ NHAP VAO MOT MẢNG A,TRÍCH CÁC PHẦN TỬ CHẲN Ở MẢNG A SANG MẢNG B.
    2/VD:A= {2,4 5,6 3,9 11,15 }
    ==>B={ 2 1 3 1 }
    B= USCLN CỦA 2 PHẦN TỬ LIỀN NHAU TRONG A
    3/XUẦT RA SNGTO LỚN NHẤT TRONG MANG A
    Code:
    //********************************************
    #include<stdio.h>
    #include<conio.h>
    void nhapmang(int a[],int n)
    {    for(int i=0;i<n;i++)
            {    printf("\nnhap ptu thu[%d]:",i);
                  scanf("%d",&a[i]);     }
    }
    void xuatmang(int a[],int n)
    {
         for(int i=0;i<n;i++)
             printf("%d",a[i]);
    }
    int uscln(int a,int b)
    {   while(a!=0)
         {     if(a>b)
                    a=a-b;
                else
                    b=b-a;    }
          return a;
    }
    void xuly(int a[],int n)
    {    int b[10],j=0;
          printf("\nuscln cua 2 so lien nhau la:");
          for(int i=0;i<n;i++)
          {    b[j]=uscln(a[i],a[i+1]);
                  j++;                       }
    xuatmang(b,j);
    }
    int ktsngto(int x)
    {    for(ỉnt i=2;i<x;i++)
             if(x%i=0)
                return 0;
              return 1;
    }
    void sngtomax(int a[],int n)
    {    int max=0;
         for(int i=0;i<n;i++)
         if(ktsngto(a[i]))
         max<a[i]?max=a[i];:max=max;
         printf("\nsngto max la:%d",max);
    }
    void main()
    {   int a[10];b[10],n,j=0;
         printf("n\nhap ptu n:");
         scanf("%d",&n);
         nhapmang(a,n);
         for(int i=0;i<n;i++)
         {   if(a[i]%2==0)
              {    b[j]=a[i]
                      j++;     }
         }
         for(i=0;i<j;i++)
             printf("\n so chan la:%d",b[i]);
         xuly(a,n);
         sngtomax(a,n);
         getch();
    }
    [:

    Bạn vui lòng để code vào trong tag code. Đọc Nội quy để biết thêm chi tiết.
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 19-01-2008 lúc 11:43 AM. Lý do: code vào tag

  2. #2
    Ngày gia nhập
    04 2007
    Bài viết
    13

    Code:
    int uscln(int a,int b)
    {   while(a!=0)
         {     if(a>b)
                    a=a-b;
                else
                    b=b-a;    }
          return a;
    }
    theo mình thì nếu a<0 hay b<0 thì code trên là sai
    sửa lại :
    Code:
    int uscln(int a,int b)
    {   int x,y;
         x=abs(a);y=abs(b);
         while(x!=0)
         {     if(x>y)
                    x=x-y;
                else
                    y=y-x;    }
          return x;
    }
    nhờ bác dream xóa giùm bài trên kia , em lỡ tay nhấn back đó mà
    Đã được chỉnh sửa lần cuối bởi Sieg : 19-01-2008 lúc 09:00 PM.

  3. #3
    Ngày gia nhập
    12 2007
    Nơi ở
    Tp.HCM
    Bài viết
    24

    Nếu a<0, b<0, thì phải return -1 chứ sao lại dùng abs(), nếu nhập số nguyên âm thì báo lỗi và yêu cầu nhập lại chứ không nên để nguyên số âm mà abs() cho ra số nguyên dương rồi cứ thế mà tính.

  4. #4
    Ngày gia nhập
    04 2007
    Bài viết
    13

    ủa đề bài đâu có bắt buộc phải nhập số nguyên dương đâu, nếu nhập a= -6, b=4 thì tìm uscln của 6 và 4 là 2 mừ, đâu có lỗi gì đâu.

  5. #5
    Ngày gia nhập
    12 2007
    Nơi ở
    Tp.HCM
    Bài viết
    24

    Vậy gặp bài toán thực tế, bạn có cần bài toán chỉ rõ là phải nhập số dương không? Điều kiện phải tự xét chứ, nhập a=-6, b=4, thì phải tính UCLN của -6 và 4 chứ sao lại là 6 và 4 (đương nhiên là không tính được).

    Xét một bài toán yêu cầu nhập một con số, nếu bạn nhập phải một ký tự, chẳng hạn là a thì chương trình của bạn sẽ ra sao? (Đề bài không yêu cầu nhập ký tự)

  6. #6
    Ngày gia nhập
    12 2007
    Nơi ở
    giữa thiên đường và địa ngục
    Bài viết
    91

    Mặc định Sữa Giùm Mình Phần Uscln Sai Chỗ Nào

    Code:
    int uscln(int a,int b)
    {   while(a!=0) // chỗ này bị sai nè bạn phải là while(a!=b) chứ
         {     if(a>b)
                    a=a-b;
                else
                    b=b-a;    }
          return a;
    }
    Đã được chỉnh sửa lần cuối bởi chjp xinh kut3 : 22-01-2008 lúc 08:56 PM.
    Tinh Quái,

    Vâng, là Chjp Xinh. Đanh đá và điêu ngoa
    .

  7. #7
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Tìm ước chung lớn nhất có thể sử dụng hàm sau:

    Code:
    int ucln(int a, int b){
    	if (a%b==0) return b;
    	else if (b%a==0) return a;
    	else if (a>b) return ucln(a%b,b);
    	else return ucln(b%a,a);
    }

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Đơn giản 1 chút nữa xem
    PHP Code:
    template <typename T>
    T gcd(T numerT denor)
    {
      
    numer abs(numer);
      while(
    denor != 0){
        
    T t numer denor;
        
    numer denor;
        
    denor t;
      }
      return 
    numer;


  9. #9
    Ngày gia nhập
    03 2008
    Nơi ở
    TP HCM
    Bài viết
    30

    Hàm dưới đây là tìm ước số chung lớn nhất của 2 số int a và b.
    Code:
    int USCLN (int a ,int b)
    {
    	while (a*b != 0)
    		if (a > b)   a %= b;
    		else	      b %= a;
    	return (a+b);
    }
    Vậy nếu a hoặc b âm thì sao hoặc a hoặc b âm thì USCLN cũng bằng USCLN của a >= 0 và b >= 0 hở mấy anh?Vậy thì mình chỉ cần dùng hàm abs là được hở mấy anh?

  10. #10
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Ước số chung của 2 số thì 2 số đó phải là nguyên dương chứ ? Theo định nghĩa về ước hay bội số chung nói như thế mà . Làm gì xét số âm ở đây ?

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

  1. Đề xuất Tôi vi phạm nội quy, Admin xử lý giùm!
    Gửi bởi Xcross87 trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 9
    Bài viết cuối: 26-09-2011, 10:12 PM
  2. Sửa giùm bài và sửa sai phần tìm tên nhân viên
    Gửi bởi laobao trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 11-12-2010, 07:31 AM
  3. tìm chổ sai giùm tôi[liệt kê các hoán vị của n phần tử]
    Gửi bởi quyxu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 02-10-2008, 09:41 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