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

Đề tài: code kiểm tra mảng tăng - lỗi không in ra thông báo

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

    Post code kiểm tra mảng tăng - lỗi không in ra thông báo

    C Code:
    1. /* viet chuong trinh kiem tra mang do co phai  la mang tang ko */
    2.  
    3.  # include <stdio.h>
    4.  # include <conio.h>
    5.  
    6.  
    7.   int main ()
    8.   { int n,i, A[100];
    9.      printf ("\n Nhap n:");
    10.      scanf ("%d",&n);
    11.      for ( i=0;i<n;i++)
    12.     { printf ("\n Nhap A[%d]: ",i);
    13.       scanf ("%d",&A[i]);
    14.      }
    15.  
    16.      for (i=0;i<n;i++)
    17.      if ( A[i]>A[i+1])
    18.      return 0; printf ("\n Day   la day tang ");
    19.      return 1; printf ("\n Day  ko phai la day tang ");
    20.               getch();
    21.     }
    Em ko hiểu tại sao nó ko in ra được mảng đó ko phải là mảng tăng

    Cũng bài trên nếu em viết hàm nhập mảng tại sao lại có lỗi
    C Code:
    1.  # include <stdio.h>
    2.  # include <conio.h>
    3.  void nhap_mang (int A[100],int n);
    4.  void nhap_mang (int A[100],int n)
    5.  { int i;
    6.      for ( i=0;i<n;i++)
    7.     { printf ("\n Nhap A[%d]: ",i);
    8.       scanf ("%d",&A[i]);
    9.      }
    10.   }
    11.  
    12.   int main ()
    13.   { int n,i, A[100];
    14.      printf ("\n Nhap n:");
    15.      scanf ("%d",&n);
    16.      nhap_mang (A[100],n);
    17.  
    18.      for (i=0;i<n;i++)
    19.      if ( A[i]>A[i+1])
    20.       return 0; printf ("\n Day   la day tang ");
    21.       return 1; printf ("\n Day  ko phai la day tang ");
    22.       getch();
    23.     }
    các giúp giúp em sửa code với . Em cám ơn

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Bạn xem kĩ mấy đoạn mình chú thích nhé
    C Code:
    1. /* viet chuong trinh kiem tra mang do co phai  la mang tang ko */
    2.  
    3.  # include <stdio.h>
    4.  # include <conio.h>
    5.  
    6.  
    7.   int main ()
    8.   { int n,i, A[100];
    9.      printf ("\n Nhap n:");
    10.      scanf ("%d",&n);
    11.      for ( i=0;i<n;i++)
    12.     { printf ("\n Nhap A[%d]: ",i);
    13.       scanf ("%d",&A[i]);
    14.      }
    15.          int t=0;
    16.      for (i=0;i<n;i++)
    17.      if ( A[i]>A[i+1]) {t=1;break;} //bạn dùng thêm một biến để kt nhé
    18.      /*return 0; printf ("\n Day   la day tang ");   khi bạn return là chương trình sẽ kết thúc rồi.
    19.      return 1; printf ("\n Day  ko phai la day tang ");*/
    20.          if (t) printf ("\n Day  ko phai la day tang "); //   <=> t!=0
    21.          else printf ("\n Day   la day tang ");
    22.               getch();
    23.     }

    C Code:
    1. # include <stdio.h>
    2.  # include <conio.h>
    3.  void nhap_mang (int A[100],int *n);  //thêm *
    4.  void nhap_mang (int A[100],int *n)
    5.  { int i;
    6.      for ( i=0;i<*n;i++)                   //............
    7.     { printf ("\n Nhap A[%d]: ",i);
    8.       scanf ("%d",&A[i]);
    9.      }
    10.   }
    11.  
    12.   int main ()
    13.   { int n,i, A[100];
    14.      printf ("\n Nhap n:");
    15.      scanf ("%d",&n);
    16.      nhap_mang (A[100],&n);       //.............
    17.  
    18.      for (i=0;i<n;i++)
    19.      if ( A[i]>A[i+1])                        //từ đây xuống sửa như bài trên nhé
    20.       return 0; printf ("\n Day   la day tang ");
    21.       return 1; printf ("\n Day  ko phai la day tang ");
    22.       getch();
    23.     }

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Gửi bạn ý kiến :

    bạn thân mến, mình xin góp ý bạn đôi điều sau :

    1. Cách trình bày ko logic

    2. Bài làm sai ngữ pháp

    3. Phương pháp giải sai.

    Mình sửa lại cách trình bày và lỗi sau ngữ pháp của bạn như sau :

    ( Chỉ sửa lại code convertion thôi chứ phương pháp vẫn sai )

    PHP Code:
    #include <stdio.h>
    #include <conio.h>

    void nhap_mang (int A[100],int n);
    void nhap_mang (int A[100],int n)
        {
            
    int i;
            for ( 
    i=0;i<n;i++)
                {
                    
    printf ("\n Nhap A[%d]: ",i);
                    
    scanf ("%d",&A[i]);
                }
        }

    int main ()
        {
            
    int n,iA[100];
            
    printf ("\n Nhap n:");
            
    scanf ("%d",&n);
            
    nhap_mang(A[100],n);
            for (
    i=0;i<n;i++)
                if ( 
    A[i]>A[i+1])
                    {
                        
    printf ("\n Day   la day tang ");
                        return 
    0;
                    }
                else
                    {
                        
    printf ("\n Day  ko phai la day tang ");
                        return 
    1;
                    }
            
    getch();
        } 
    tuy nhiên đây vẫn chưa phải là bài giải đúng. Phương pháp này sai.

    Để kiểm tra 1 dãy có tăng ta làm như sau :

    + cần 1 flag có giá trị ban đầu
    + duyệt từ đầu mảng đến gần cuối mảng
    ...........nếu mảng[i]>mang[i+1] thì
    ........................... {
    ..........................................flag thay đổi giá trị;
    ..........................................break;
    ............................}

    + Qua giá trị của flag để kết luận xem mảng có tăng dần hay ko ...!
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  4. #4
    Ngày gia nhập
    07 2006
    Bài viết
    121

    C Code:
    1. for(int i = 0; i < n - 1; i++)
    2. {
    3.       if(a[i] > a[i + 1] ) return FALSE
    4. }
    5. return TRUE;

    OoShinHaoO

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

    Bạn có thể đưa cả bài lên được ko , mình cũng làm theo cách đó nhưng vẫn chưa được .

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. int KiemTraTang (int A[100 ], int n);
    4. void nhap_mang (int A[100],int n);
    5. void nhap_mang (int A[100],int n)
    6.      { int i;
    7.         for ( i=0;i<n;i++)
    8.           { printf ("\n Nhap A[%d]: ",i);
    9.               scanf ("%d",&A[i]);
    10.           }
    11.      }
    12.  
    13.  int KiemTraTang (int A[100 ], int n)
    14. {
    15.  
    16.       int flag = 1;
    17.       for (int i = 0; i < n-1; i ++ )
    18.       if ( A[i] > A[i+1] )
    19.         {
    20.           flag = 0;
    21.           break;
    22.         }
    23.       return flag;
    24. }
    25.  
    26.  int main ()
    27.      {
    28.           int n,i,flag, A[100];
    29.           printf ("\n Nhap n:");
    30.           scanf ("%d",&n);
    31.           nhap_mang(A,n);
    32.           KiemTraTang ( A,n);
    33.           if (flag ==1 )
    34.           printf ("\n mang tang ");
    35.           else
    36.           printf ("\n mang ko tang ");
    37.  
    38.  
    39.           getch();
    40.      }
    Đây là bài làm của mình mong mọi người sửa với

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Mặc định code kiểm tra mảng tăng - lỗi không in ra thông báo

    Bài này của bạn này mắc lỗi.

    Tổng kết lại các lỗi của các bạn đều do Lý thuyết nắm chưa vững.
    flag là biến địa phương nằm trong hàm kiểm tra. Nó chỉ có tác dụng trong nội hàm đó thôi
    PHP Code:
              if (flag ==)
              
    printf ("\n mang tang ");
              else
              
    printf ("\n mang ko tang "); 
    Máy sẽ ko thể hiểu flag là gì ....

    Bạn có thể sửa lại thế này
    PHP Code:
                  if (KiemTraTang A,n) ==)
                      
    printf ("\n mang tang ");
              else
                      
    printf ("\n mang ko tang "); 
    hoặc ngắn gọn hơn

    PHP Code:
                  if (KiemTraTang A,n))
                      
    printf ("\n mang tang ");
              else
                      
    printf ("\n mang ko tang "); 
    Tái bút : code có vẻ đẹp hơn 1 tí rồi nhưng nhiều chỗ chưa chuẩn. nhìn xem bài mình chữa cho bạn if mình trình bày thế nào
    Đã được chỉnh sửa lần cuối bởi langman : 27-07-2008 lúc 08:46 AM.
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  7. #7
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Trích dẫn Nguyên bản được gửi bởi shinichi_haha Xem bài viết
    Code:
    for(int i = 0; i < n - 1; i++)
    {
          if(a[i] > a[i + 1] ) return FALSE
    }
    return TRUE;
    Ở đây không đề cập tới biến hay cụ bộ hay toàn cục chỉ lưu ý điều kiện dừng của vòng for: i < n tức i = n - 1 vẫn thỏa điều kiện lúc đó a[n - 1 + 1] sẽ trỏ tới một con số ngoài mảng.

    OoShinHaoO

  8. #8
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,006

    Trích dẫn Nguyên bản được gửi bởi shinichi_haha Xem bài viết
    Ở đây không đề cập tới biến hay cụ bộ hay toàn cục chỉ lưu ý điều kiện dừng của vòng for: i < n tức i = n - 1 vẫn thỏa điều kiện lúc đó a[n - 1 + 1] sẽ trỏ tới một con số ngoài mảng.
    bài cậu giải kiểu vầy sẽ trỏ đến 1 phần tử : a[n]

    mảng có n phần tử bắt đầu từ 0 đến n-1 ko có phần tử a[n]



    ...

    Về phần biến là tôi @thangit
    ^_,^

    Tổng hợp các câu chuyện hài hước vui nhộn, sử dụng Speech Synthesis để đọc : https://www.youtube.com/channel/UCLk...Tjrg/playlists


    Bùi Tấn Quang

  9. #9
    Ngày gia nhập
    02 2009
    Bài viết
    5

    đây là code của mình:
    PHP Code:
    int kt=0;
    if(
    a[i]<a[i+1] && (kt==0)) kt=1//mang tang
    else if(a[i]>a[i+1] && (kt==0)) kt=2//mang giam
    else if((kt==&& a[i]>a[i+1]) || (kt==&& a[i]<a[i=1])) break; 

  10. #10
    Ngày gia nhập
    08 2009
    Bài viết
    2

    thầy dạy em là dùng lính canh,chỉ cần 1 chổ thôi là cho dừng và kết luận luôn,bạn cũng nên học phương pháp này cũng hay và khả dụng,....

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

  1. Code tìm dãy con tăng dài nhất không chạy được lỗi do đâu?
    Gửi bởi RedHatLinux9 trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 13
    Bài viết cuối: 21-01-2013, 03:52 AM
  2. chạy không thành công đoạn code sau về xắp xếp tăng dần
    Gửi bởi hoangdreaming trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 28-04-2011, 11:39 PM
  3. Lập trình C Bài toán sắp xếp tăng dần, giúp mình hiểu code
    Gửi bởi NDThang trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 30-10-2010, 11:12 PM
  4. Hướng dẫn sử dụng Refactor Tăng hiệu năng tạo code
    Gửi bởi AlexF trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 21-03-2009, 09:29 PM
  5. Code: kiểm tra dãy tăng dần
    Gửi bởi zodjac1990 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 02-12-2008, 04:28 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