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

Đề tài: Tìm phần tử x trong mảng

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

    Mặc định Tìm phần tử x trong mảng

    Các bạn giúp mình bài này với
    Nhập mảng và số nguyên x
    Tìm phần tử có giá trị gần và xa x nhất trong mảng

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

    Bạn làm dc bài tìm min và max trong mảng rồi chứ ??
    Làm dc bài đó rồi thì bài này tương tự:
    if( |ai-x| >max ) thì max=|ai-x| và vị trí = i ;
    Min tương tự.
    Xong
    Um Mani Padme Hum...!!

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

    Bạn xem dùm code này sữa sao vậy
    Code:
    #include<stdio.h>
    #include<math.h>
    
    void nhapmang(int a[],int &n)
    {
    	printf("Nhap so phan1 tu: ");
    	scanf("%d",&n);
    	for(int i=0;i<n; i++)
    	{
    		printf("Nhap so phan tu thu %d = ", i+1);
    		scanf("%d", &a[i]);
    	}
    }
    
    void nhap_x(int &x)
    {
    	printf("Nhap x : ");
    	scanf("%d",&x);
    }
    
    int timmax(int a[],int n)
    {
    	int max=a[0];
    	for (int i=0;i<n;i++)
    	{
    		if (max<a[i])
    			max=a[i];
    	}
    	printf("max %d ",max);
    	return max;
    }
    
    int timmin(int a[],int n)
    {
    	int min=a[0];
    	for (int i=0;i<n;i++)
    	{
    		if (min>a[i])
    			min=a[i];
    	}
    	printf("Min %d ",min);
    	return min;
    }
    
    int timx(int a[],int n)
    {
    	int max,x,vt,min;
    	for (int i=0;i<n;i++)
    	{
    		if (abs(a[i]-x)>max)
    		{
    			max=abs(a[i]-x);
    			vt=a[i];
    		}
    		if (abs(a[i]-x)<min)
    		{
    			min=abs(a[i]-x);
    			vt=a[i];
    		}
    	}
    	printf("Phan tu gan x nhat : %d",vt);
    	return vt;
    }
    
    void main()
    {
    	int a[100],n,x;
    	nhapmang(a,n);
    	timmin(a,n);
    	timmax(a,n);
    	nhap_x(x);
    	timx(a,n);
    }

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

    1)Tìm x phải là vt = i chứ .
    vị trí là vị tri thứ i chứ sao lại a[i].
    2)X có nạp vào hàm cho nó đâu, nó đâu biết x là cái gì mà đem ra làm việc. Mặc dù có khai báo nhưng là vô nghĩa.
    Mở hàm thêm 1 tham số nữa, rồi truyền x từ main vào.
    3)Max với min mới vào ko có giá trị, lấy gì mà so sánh ?
    Um Mani Padme Hum...!!

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

    Trích dẫn Nguyên bản được gửi bởi clchicken Xem bài viết
    1)
    X có nạp vào hàm cho nó đâu, nó đâu biết x là cái gì mà đem ra làm việc. Mặc dù có khai báo nhưng là vô nghĩa.
    Mở hàm thêm 1 tham số nữa, rồi truyền x từ main vào.
    Vậy là sao bạn
    Bạn code thử mình coi thử đi

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

    Mặc định Tìm phần tử x trong mảng

    Trích dẫn Nguyên bản được gửi bởi csfire Xem bài viết
    Bạn xem dùm code này sữa sao vậy
    Code:
    int timx(int a[],int n)
    {
    	int max,x,vt,min;
    	for (int i=0;i<n;i++)
    	{
    		if (abs(a[i]-x)>max)
    		{
    			max=abs(a[i]-x);
    			vt=a[i];
    		}
    		if (abs(a[i]-x)<min)
    		{
    			min=abs(a[i]-x);
    			vt=a[i];
    		}
    	}
    	printf("Phan tu gan x nhat : %d",vt);
    	return vt;
    }
    Cái hàm timx trên là một hàm hoàn toàn rác rưởi. Sai từ thiết kế thuật toán đến code, ngày cả nguyên tắc đặt tên cũng sai nốt.

    Đặt tên: timx là cái gì? mục đích hàm này đâu có tìm x. Nhiệm vụ nó là tìm 1 số xa x nhất và 1 số gần x nhất. Nếu đặt tên thì tên nó phải là Tim2so hay dài dòng hơn nữa Tim2soxagannhat

    Thiết kế: hàm tìm 2 số mà trả về có 1 số. Thế thì số kia tìm làm gì?

    Thuật toán và code: xem clchicken

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

  1. Lập trình C tìm xem trong mảng số nguyên i_Mang[] có bao nhiêu phần tử có giá trị âm & phần tử có giá trị âm trong mảngn
    Gửi bởi fawker 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: 29-05-2013, 03:28 PM
  2. Bài tập C xóa phần tử trùng nhau trong mảng 1 chiều để lại 1 phần tử
    Gửi bởi ronoa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 06-01-2012, 10:46 PM
  3. Thủ tục loại bỏ các phần tử trùng nhau, giữ lại duy nhất 1 phần tử trong DSLK
    Gửi bởi mrtyoffline 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: 02-03-2011, 10:27 PM
  4. Thuật toán trên C | Xóa phần tử trong dãy phần tử tăng dần?
    Gửi bởi quangphuit 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: 09-03-2010, 01:57 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