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

Đề tài: chèn thêm phần tử sau phần tử các 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

    Red face chèn thêm phần tử sau phần tử các phần tử max của mảng

    anh em giúp tớ bài này nhé
    tớ chèn thêm phần tử vào trong mảng sau phần tử max nhưng chỉ đúng với trong mảng có 1 phần tử max thui
    tớ muốn làm đúng cả với trong mảng có nhìu phần tử max thì phải sửa code ntn
    thanks moi người
    code chua mình 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 2010
    Nơi ở
    Nơi nào đó trong vũ trụ
    Bài viết
    550

    Cách làm của bạn ở hàm chèn mảng nên sửa lại là:
    - Lưu giá trị max vào 1 biến.
    - Duyệt mảng, tiến hành tìm kiếm vị trí phần tử max, rồi gọi hàm chèn phần tử vào mỗi vị trí max tìm được. Duyệt đến hết mảng.
    Hàm này :int ptMAX(int a[],int &n)
    không dùng tham chiếu ở biến n làm gì, thừa.
    Có 1 cách khác đỡ tốn chi phí dồn mảng hơn cách trên là: Lưu lại vị trí và số lượng các phần tử max sau đó mới tiến hành dồn mảng theo các thông tin trên. Như thế này chỉ dồn 1 lần.
    Gió thu lạnh lẽo hắt hiu lò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