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

Đề tài: thêm một số vào dãy tăng?

  1. #1
    Ngày gia nhập
    09 2010
    Bài viết
    38

    Mặc định thêm một số vào dãy tăng?

    cho một dãy tăng,thêm vào dãy vẫn tăng,chỉ chạy sai trong mỗi trường hợp
    cho dãy 1 2 3 4 5 khi thêm vào 3 thì chương trình tự thoát.nhờ anh em sữa giúp
    Code:
          #include<stdio.h>
    #include<conio.h>
    
    #define max 100
    typedef struct list
    {
     int n;
     int nodes[max];
    
    };
    
    
      void nhapds(struct list &ds)
      {
      printf("nhap vao so phan tu:");
      scanf("%d",&ds.n);
      printf("nhap danh sach:\n");
      for(int i=0;i<ds.n;i++)
      {
      printf("nhap vao phan tu thu %d:",i+1);
      scanf("%d",&ds.nodes[i]);
    
      }
      }
      void xuatds(struct list &ds)
      {
       if(ds.n==0)
       printf("danh sach rong");
       else
       {
       printf("cac phan tu cua day:");
       for(int i=0;i<ds.n;i++)
       printf("%d  ",ds.nodes[i]);
       }
       }
       void themvaotang(list &ds,int m)
       {
         if(ds.nodes[0]>=m)
         {
          for(int i=ds.n-1;i>=0;i--)
          ds.nodes[i+1]=ds.nodes[i];
          ds.nodes[0]=m;
          ds.n++;
          xuatds(ds);
    
    
         }
       else  if(ds.nodes[ds.n-1]<=m)
        {
    	    ds.nodes[ds.n++]=m;
    
    	    xuatds(ds);
    	    }
          else
    	  {
    	   for(int i=0;i<ds.n;i++)
    
    	   if(ds.nodes[i]<m && m<ds.nodes[i+1])
    	   {
    
    		     for(int j=ds.n-1;j>i;j--)
    	      ds.nodes[j+1]=ds.nodes[j];
    	      ds.nodes[i+1]=m;
    	      ds.n++;
    	   }
    	    xuatds(ds);
    	  }
       }
       void main()
       {
       clrscr();
        list ds;
        nhapds(ds);
        xuatds(ds);
        int them;
        printf("\nnhap so muon them vao:");
        scanf("%d",&them);
        themvaotang(ds,them);
        getch();
       }

  2. #2
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    cho một dãy tăng,thêm vào dãy vẫn tăng,chỉ chạy sai trong mỗi trường hợp
    cho dãy 1 2 3 4 5 khi thêm vào 3 thì chương trình tự thoát.nhờ anh em sữa giúp
    Mình đâu có thấy như thế. Test thử thấy đúng mà
    Nhớ một người,
    Là yêu hay là thích .... ?

  3. #3
    Ngày gia nhập
    09 2010
    Bài viết
    38

    Code:
     else
    	  {
    	   for(int i=0;i<ds.n;i++)
    
    	   if(ds.nodes[i]<=m && m<=ds.nodes[i+1])//mình thiếu 2 dấu bằng chỗ này
    	   {
    
    		     for(int j=ds.n-1;j>i;j--)
    	      ds.nodes[j+1]=ds.nodes[j];
    	      ds.nodes[i+1]=m;
    	      ds.n++;
    	   }
    	    xuatds(ds);
    	  }
       }
    nếu không có 2 dấu = thì chương trình lại không in ra giá trị được thêm vào
    phải in ra 1 2 3 3 4 5 mới đúng.nhờ sữa giúp

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

  1. Thêm mã nhân viên tăng dần và theo đơn vị
    Gửi bởi mrlonely0390 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 12-10-2013, 02:03 PM
  2. ADO.NET Thêm ID tự tăng vào SQL từ ADO.NET
    Gửi bởi phucnguyen0818 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 23-12-2012, 10:30 PM
  3. Thêm Nhân viên với Mã tăng tự động trong C# bằng cách nào?
    Gửi bởi ltdt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 16-10-2012, 02:01 PM
  4. Thêm 1 phần tử vào mảng không làm mất tính tăng của mảng
    Gửi bởi chiensy 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: 04-07-2009, 10:57 PM
  5. [C] Chèn thêm phân tử vào dãy tăng dần???
    Gửi bởi narxix_voldemort trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 41
    Bài viết cuối: 18-06-2007, 03:59 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