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

Đề tài: sao chép mảng (hay)

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

    Angry sao chép mảng (hay)

    giúp em bài tách dãy số A thành dãy ko âm B và âm C :
    em viết code rồi nhưng ko biết điều kiện để dừng lặp mảng B và mảng C :
    mong mọi người chỉ bảo .

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

    bạn post code lên đây
    Hết mảng A thì dừng chứ sao

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

    chào bạn theo tôi để tách mảng A thành 2 dãy âm và dãy dương không cần cầu kỳ như bạn nghĩ đâu bạn cứ post code của bạn nên .Bạn thử tham khảo code này nhé:

    Code:
    #include<stdio.h>
    #include<conio.h>
    #define n 11
    int a[11]={5,-4,-3,-2,-1,0,1,2,3,4,-5}  ;
    int b[11],c[11];
    int  main()
    {
       int i,idx;
       printf("day so ko am  :  ");
       for(i=0;i<11;i++)
       { 
        if(a[i]>=0)
        {         
           printf("%d\t",a[i]);
         }
        } 
        printf("\n");
        printf("day so am     :  ");
         for(i=0;i<11;i++) 
          if(a[i]<0)
          {
         printf("%d\t",a[i]);
          }
          getch();
    }
    Yêu cầu bạn để code vào tag code nhé. Đọc Nội quy để biết thêm chi tiết.
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 14-01-2008 lúc 11:16 PM. Lý do: Nhắc nhở

  4. #4
    Ngày gia nhập
    12 2007
    Nơi ở
    tp hcm
    Bài viết
    1

    bạn có thể dùng hai mảng khác .rồi duyệt mảng cần tách .gọi i,j là số phần tử của hai mảng đó . mỗi khi thêm vào mảng thì tăng i ,j lên một đơn vị (i++,j++). vậy thôi .

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

    đây là code của mình mong mọi người sua:
    Code:
    # include <stdio.h>
    # include <conio.h>
    main()
    { int A[100],B[100],C[100];
      int n,i;
      int k =1,l=1;
      clrscr();
      printf ("\n nhap n:");
      scanf ("%d",&n);
      for (i=1;i<=n;i++)
      { printf ("\n nhap A[%d]",i);
       scanf ("%d",&A[i]);
       }
      for (i=1;i<=n;i++)
       if (A[i]>0)
       {B[k]=A[i];
        k++;
        }
        else
       {C[l]=A[i] ;
       l ++;
       }
    
       for (k=1;k<=n;k++)
       printf ("\n mang %d",B[k]);
       for (l=1;l<=n;l++)
       printf ("\n mang %d",C[l]);
       getch();
       }
    ______________________________
    Chú ý đặt code vào tag.Vi phạm lần nữa bài bạn sẽ bị del
    Đã được chỉnh sửa lần cuối bởi Alviss : 15-01-2008 lúc 12:41 PM.

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

    Mặc định sao chép mảng (hay)

    bạn xem lại cho mình 2 vong for "for (k=1;k<=n;k++) và for (l=1;l<=n;l++)" bạn có chắc là k và l chạy tới n không theo tui nó chỉ chạy tới max cua k và l thôi bạn xem lại đây là code của bạn tui sửa lại
    Code:
    # include <stdio.h>
    # include <conio.h>
    main()
    { int A[100],B[100],C[100];
    int n,i;
    int k =1,l=1;
    int maxk=0;
    printf ("\n nhap n:=");
    scanf ("%d",&n);
    for (i=1;i<=n;i++)
    { printf ("\n nhap A[%d]=: ",i);
    scanf ("%d",&A[i]);
    }
    for (i=1;i<=n;i++)
    if (A[i]>=0)
    {B[k]=A[i];
    k++;
    }
    else
    {C[l]=A[i] ;
    l++;
    }
    if(maxk<k) maxk=k;
    printf("mang khong am : ");
    for (k=1;k<maxk;k++)
    {
     printf ("%d\t",B[k]);
    } 
    printf("\n");
    int maxl=0;
    if(maxl<l) maxl=l;
    printf("mang am : ");
    for (l=1;l<maxl;l++)
    printf ("%d\t",C[l]);
    getch();
    }

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

    cho mình cám ơn bạn .Mình đã chạy đuoc chương trình rồi . cho mình hỏi tại sao ban ko cho k,l chạy đến = maxk,maxl

  8. #8
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Chương trình này mình sửa lại từ chương trình trên. Thay vì tạo ra 2 mảng mới chia mảng cũ thành 2 đoạn một đoạn toàn các số dương, một đoạn toàn các số âm
    Code:
    # include <stdio.h>
    # include <conio.h>
    main()
    { int A[100];
    int n,i;
    int k =1,l=1;
    int maxk=0;
    printf ("\n nhap n:=");
    scanf ("%d",&n);
    for (i=1;i<=n;i++)
    { printf ("\n nhap A[%d]=: ",i);
    scanf ("%d",&A[i]);
    }
    	int f=1,r=n, t;
    	do
    	{
    	while ((A[f]>=0) & (f< r)) f++;
    	while ((A[r]<0) & ( r> f))r--;
    	t= A[f]; A[f]= A[r]; A[r]= t;
    	}
    	while (f<r);
    
    if(maxk<k) maxk=k;
    printf("mang khong am : ");
    for (k=1;k<f;k++)
    {
     printf ("%d\t",A[k]);
    }
    printf("\n");
    int maxl=0;
    if(maxl<l) maxl=l;
    printf("mang am : ");
    for (l=r;l<=n;l++)
    printf ("%d\t",A
    [l]);
    getch();
    }

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

    cám ơn nhưng trả lời câu hỏi chính của minh . mình hỏi thêm có phải gán maxk=0 ,maxl=0 do phần tử đầu tiên của mảng hay như thế nào mong mọi người góp ý

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

    sao ko ai vào trả lời mình thế ?

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