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

Đề tài: bài tập kiểm tra mảng tăng dần hay giảm dần

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

    Mặc định bài tập kiểm tra mảng tăng dần hay giảm dần

    đề bài là cho mảng 1 chiều. rồi xuất ra ,tăng dần hoặc giảm dần hoặc là ko tăng ko giảm ai biết cách làm thì chỉ em với

  2. #2
    Ngày gia nhập
    01 2012
    Nơi ở
    Giang hồ hiểm ác
    Bài viết
    2

    Mình ngĩ bạn nên tham khảo 1 số bài sắp xếp mà các tiền bối đã làm rồi ấy, bạn lên đây yêu cầu ng khác làm làm rất mất thời gian nếu lại code lại hoặc tìm code rồi đưa lên cho bạn xem.
    Nếu thực sự k làm được thì bạn nên đưa ra ý tưởng hoặc thuật toán, rồi mọi người sẽ giúp cho.
    VD bài ở trên : Thuật toán sắp xếp thì có nhiều loại, ở đây mình hay dùng "Nổi bọt" :
    Code:
    a= b; 
    b=c;
    c=a;
    --> đổi chỗ a và c.
    Tùy vào sx tăng dần hay giảm dần thì bạn sẽ có đk ban đầu là a<c hoặc a>c để làm bài.
    Ý tưởng ở đây là bạn sẽ so sánh 2 phần tử liên tiếp nhau, nếu có 2 phần tử thứ i và i+1 trong mảng có thứ tự (tăng hoặc giảm) không giống với pt thứ i-2 và i-1, i-1 và i thì kq sẽ là dãy k tăng k giảm, còn ngược lại thì kq là dãy tăng (hoặc giảm).
    Chúc bạn học tốt.
    Thân.
    Mây của trời... Cứ để gió cuốn đi!

  3. #3
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi super4noob Xem bài viết
    Mình ngĩ bạn nên tham khảo 1 số bài sắp xếp mà các tiền bối đã làm rồi ấy, bạn lên đây yêu cầu ng khác làm làm rất mất thời gian nếu lại code lại hoặc tìm code rồi đưa lên cho bạn xem.
    Nếu thực sự k làm được thì bạn nên đưa ra ý tưởng hoặc thuật toán, rồi mọi người sẽ giúp cho.
    VD bài ở trên : Thuật toán sắp xếp thì có nhiều loại, ở đây mình hay dùng "Nổi bọt" :
    Code:
    a= b; 
    b=c;
    c=a;
    --> đổi chỗ a và c.
    Tùy vào sx tăng dần hay giảm dần thì bạn sẽ có đk ban đầu là a<c hoặc a>c để làm bài.
    Ý tưởng ở đây là bạn sẽ so sánh 2 phần tử liên tiếp nhau, nếu có 2 phần tử thứ i và i+1 trong mảng có thứ tự (tăng hoặc giảm) không giống với pt thứ i-2 và i-1, i-1 và i thì kq sẽ là dãy k tăng k giảm, còn ngược lại thì kq là dãy tăng (hoặc giảm).
    Chúc bạn học tốt.
    Thân.
    đề ở đây của chủ xị là kiểm tra mảng là mảng tăng dần hay giảm dần hay ko tăng ko giảm mừ.

    ở đây bn có thể dùng flag kiểm tra.1 là tăng -1 là giảm 0 là ko tăng ko giảm.
    kiểm tra a[0] vs a[1] có flag.
    xong pắt đầu duyệt mảng.ở đâu có kq khác flag tức là ko tăng ko giảm.còn lại kq mảng chính là giá trị của flag
    HT117-5277

  4. #4

    cậu cho 2 cái vòng for với i = 0 và j = 1 nếu a[i]< a[j] dem++; khi nào dem == n ( số phần tử nhập vào) thì đó là mảng tăng tương tự mảng giảm a[i] > a[j] thì dem1==n.......

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

    Chỉ cần 1 vòng for thôi.
    Đăt một biến tc, âm nếu giảm dần, dương nếu tăng dần, 0 nếu không. KHởi đầu trị biến này là 0
    Vòng lặp chạy i=0 đến i < n-1
    nếu tc == 0 thì tc = a[i+1] - a[i]
    else nếu tc khác dấu với a[i+1] - a[i] thì tc = 0, và break khỏi vòng lặp
    Hết vòng lạp, kiểm tra dấu của tc

    Đây là trả lời đúng theo câu hỏi của bạn, tức là đã có mảng trước. Nếu caanf phải nhập mảng thì có thể chỉnh cahc só sánh mọt chút đẻ có thể vừa nhập vừa tính.
    Đã được chỉnh sửa lần cuối bởi VoTichSu : 04-01-2012 lúc 11:39 PM.

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

    Mặc định bài tập kiểm tra mảng tăng dần hay giảm dần

    hay woa. em lam giong bac cung duoc...hey.thanks

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

    Mình cũng dùng 2 vòng for
    Code:
    for (i=0;i<n;i++)
    		for (int j=i+1;j<n;j++)
    			{
    				if(a[i]>a[j])
    					{
    						int temp=a[i];
    						a[i]=a[j];
    						a[j]=temp;
    					}
    			}
    Đơn giản và dễ hiểu .

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

    Trích dẫn Nguyên bản được gửi bởi thanhhong222 Xem bài viết
    Mình cũng dùng 2 vòng for
    Code:
    for (i=0;i<n;i++)
    		for (int j=i+1;j<n;j++)
    			{
    				if(a[i]>a[j])
    					{
    						int temp=a[i];
    						a[i]=a[j];
    						a[j]=temp;
    					}
    			}
    Đơn giản và dễ hiểu .
    Đơn giản thì chưa biết chứ dễ hiểu chỗ nào thì chịu thua. Cả cái bài của bạn nó không hề đề cập tới cái code của bạn làm cái gì.

  9. #9
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Trích dẫn Nguyên bản được gửi bởi thanhhong222 Xem bài viết
    Mình cũng dùng 2 vòng for
    Code:
    for (i=0;i<n;i++)
    		for (int j=i+1;j<n;j++)
    			{
    				if(a[i]>a[j])
    					{
    						int temp=a[i];
    						a[i]=a[j];
    						a[j]=temp;
    					}
    			}
    Đơn giản và dễ hiểu .
    ko pít hỉu cái đề ko nữa.cái đề là tìm tính chất của dãy tăng hay giảm hay ko tăng ko giảm.
    còn code này là đi sắp xếp tăng dần(ko cần i<n đâu đ/c à)
    HT117-5277

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

    mình chỉ gợi ý thuật toán như thế thui.
    Trước tiên phải gán giá trị cho từng phần tử trong mảng (nhập liệu hoăc. random)
    sau đó thì so sánh số thứ 1 với số thứ 2 xem nó thuộc dạng nào rồi đưa ra kết luận.
    Mình nghĩ cách đó đơn giản nên đóng góp vậy mà.

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

  1. Bài tập C Thắc mắc về bài toán mảng tăng, giảm hay không tăng, không giảm
    Gửi bởi oracle95 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 08-11-2013, 12:06 AM
  2. Thuật toán chuyển dãy tăng giảm thành dãy tăng?
    Gửi bởi anhtran trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 5
    Bài viết cuối: 12-03-2012, 07:40 AM
  3. Giải thuật về tăng/giảm độ tương phản của ảnh như thế nào?
    Gửi bởi cuipapknight 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: 27-08-2011, 11:11 PM
  4. MS SQL Lỗi sắp xếp tăng dần nếu trùng thì sắp giảm giần
    Gửi bởi teodainhan trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 2
    Bài viết cuối: 05-07-2011, 08:35 AM
  5. Tăng và giảm bằng 2 phím | Thuật toán tăng và giảm khi đếm số thứ tự từ 00 đến 99?
    Gửi bởi guitar_flamenco trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 09-05-2009, 05: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