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

Đề tài: chén thêm phần tử sau phần tử max của mảng

  1. #1
    Ngày gia nhập
    07 2011
    Nơi ở
    hà nội
    Bài viết
    3

    Mặc định chén thêm phần tử sau phần tử max của mảng

    em hộ tớ bài náy các pro ơi
    tớ chèn thêm phần tử vào sau phần tử max của mảng nhưng nếu mảng có nhiều phần tử max thì lại o được
    code cua minh nè:
    #include<stdio.h>
    #include<conio.h>
    #define MAX 100
    void nhap(int a[],int &n)
    {
    printf("nhap vao so phan tu cua mang:\n");
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
    printf("a[%d]=",i);
    scanf("%d",&a[i]);
    printf("\n");
    }
    }
    void inmang(int a[],int n)
    {
    printf("\n mang vua nhap la :\n");
    for(int i=0;i<n;i++)
    {
    printf("%d",a[i]);
    printf("\t");
    }
    }
    int ptMAX(int a[],int &n)
    {
    int max=a[0];
    for(int i=1;i<n;i++)
    {
    if(max<a[i])
    max=a[i];
    }
    return max;
    }
    int vitri(int a[],int &n)
    {
    for(int i=0;i<n;i++)
    {
    if(a[i]==ptMAX(a,n))
    return i;
    }
    }
    void chenmang(int a[],int &n,int x)
    {
    for(int i=n;i>vitri(a,n);i--)
    {

    a[i]=a[i-1];
    a[vitri(a,n)+1]=x;
    n++;

    }

    }
    void chenchan(int a[],int n,int x)
    {
    int i=0,j;
    while(i<n)
    {
    if(a[i]%2==0)
    {
    for(j=++n;j>=i+2;j--)
    {
    a[j]=a[j-1];
    a[i+1]=x;
    i+=2;
    }
    }
    else i++;
    }
    }


    void main()
    {
    fflush(stdin);
    int a[MAX],n,x;
    nhap(a,n);
    printf("\n nhap phan tu x=");
    scanf("%d",&x);
    chenmang(a,n,x);

    inmang(a,n);
    getch();
    }

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

    Hi Bạn,
    Mình dở lập trình c lắm nhưng thấy bài của bạn 2 ngày rùi mà chưa ai trả lời nên mình mạo mụi gửi cho bạn bài cùi bắp của mình hy vọng giúp được bạn. Mình chưa rõ ý bạn lắm nhưng nếu mảng có nhiều hơn một phần tử max thì bạn chèn không được thì bài này giải quyết được vấn đề đó đó.

    Code:
    #include<stdio.h>
    #include<conio.h>
    #define MAX 100
    void nhap(int a[],int *n)
    {
    	do{
    		printf("nhap vao so phan tu cua mang(<100): ");
    		scanf("%d",n);
    	}while((*n) > MAX);
    	printf("\n");
    	for(int i=0; i<*n;i++)
    	{
    		printf("  a[%d]= ",i);
    		scanf("%d",&a[i]);
    		printf("\n");
    	}
    }
    void inmang(int a[],int n)
    {
    	printf("\n mang vua nhap la : ");
    	for(int i=0;i<n;i++)
    	{
    		printf("%d  ",a[i]);
    	}
    }
    int gtMAX(int a[],int n)
    {
    	int max=a[0];
    	for(int i=1;i<n;i++)
    	{
    		if(max<a[i])
    			max=a[i];
    	}
    	return max;
    }
    
    void chenmang(int a[],int *n,int x)
    {  
    	int gtmax;
    	int i=0, j=0;
    	gtmax = gtMAX(a,*n);
    	for (i =1; i< *n; i++)
    	{
    		if (*n == MAX)
    		{
    			break;
    		}
    		if (a[i] == gtmax)
    		{
    			for (j = *n; j> i; j--)
    			{
    				a[j] = a[j-1];
    			}
    			a[j+1] = x;
    			(*n)++;
    		}
    	}
    }
    
    void main()
    {
    	fflush(stdin);
    	int a[MAX],n,x;
    	nhap(a,&n);
    	printf("\n value of n: %d\n",n);
    	inmang(a,n);
    	
    	printf("\n nhap phan tu x= ");
    	scanf("%d",&x);
    	
    	chenmang(a,&n,x);
    	inmang(a,n);
    	getch();
    }

  3. #3
    Ngày gia nhập
    06 2009
    Bài viết
    60

    Code:
    void chenmang(int a[],int *n,int x)
    {  
    	int gtmax;
    	int i=0, j=0;
    	gtmax = gtMAX(a,*n);
    	for (i =1; i< *n; i++) // i = 0 hình như i = 0 mới chính xác.(:-)?
    	{
    		if (*n == MAX)
    		{
    			break;
    		}
    		if (a[i] == gtmax)
    		{
    			for (j = *n; j> i; j--)
    			{
    				a[j] = a[j-1];
    			}
    			a[j+1] = x;
    			(*n)++;
    		}
    	}
    }

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

    OK! Thiếu phần tử a[0].

  5. #5
    Ngày gia nhập
    07 2011
    Nơi ở
    hà nội
    Bài viết
    3

    cám ơn mọi người nhé
    hihi
    mình hiểu rùi
    chỉ cần sửa 1 chút thui mà không nghĩ ra
    gà wa

  6. #6
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Nội
    Bài viết
    128

    Mặc định chén thêm phần tử sau phần tử max của mảng

    Thực ra khi đã tìm ra vị trí phần tử max rồi thì làm thêm 1 bước nữa là duyệt từ đầu mảng tới cuối mảng chỗ nào mà có phần từ max là chèn thôi cũng đâu khó giải quyết lắm . Đây là cách đơn giản nhé vì chỉ cần thêm 1 thủ thuật tìm kiếm khi chèn mảng !

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

  1. Trả lời: 5
    Bài viết cuối: 13-12-2012, 02:54 PM
  2. Cách xóa phần tử mảng và thêm phần tử vào mảng?
    Gửi bởi duc_khanh_89 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 03-04-2012, 07:50 AM
  3. Trả lời: 0
    Bài viết cuối: 08-09-2011, 10:14 PM
  4. Tìm một phần tử có trong danh sách và thêm vào một phần tử mới ngay sau đó
    Gửi bởi nhantqt 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: 22-04-2010, 11:35 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