Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 25 kết quả

Đề tài: Vấn đề về min ...

  1. #1
    Ngày gia nhập
    06 2008
    Bài viết
    51

    Mặc định Vấn đề về min ...

    Các pro sửa cho em bài này xem tại sao min nó cứ mãi bằng 1.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int n,i,min,max,a[100];
    5. void main()
    6. {
    7.      
    8.      printf("\n nhap n:="); scanf("%d", &n);
    9.      for(i=0;i<n;i++)
    10.      {printf("\n a[%d]=",i); scanf("%d",&a[i]);}
    11. min=1; max=0;
    12.    
    13.      for(i=0;i<n;i++)
    14.       if(a[i]<min)
    15.         min=a[i];
    16.      
    17.    
    18.      for(i=0;i<n;i++)
    19.       if(a[i]>max)
    20.         max=a[i];
    21.      
    22.        
    23.     printf("\n min=%d",min);
    24.     printf("\n max=%d",max);
    25.  getch();
    26. }
    * Vui lòng bọc code vào tag code khi post bài trên diễn đàn.
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 07-03-2009 lúc 12:06 PM.

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    thì cậu để min=1 thì nó sẽ là 1 chứ sao nữa...=.=
    None!

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

    Sửa dùm bạn rồi đó
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int n,i,min,max,a[100];
    5. void main()
    6. {
    7.      
    8.      printf("\n nhap n:="); scanf("%d", &n);
    9.      for(i=0;i<n;i++)
    10.      {
    11.           printf("\n a[%d]=",i);
    12.           scanf("%d",&a[i]);
    13.      }
    14.  
    15.      min=a[0]; max=a[0];
    16.    
    17.      for(i=1;i<n;i++)
    18.      {
    19.            if(a[i]<min) min=a[i];
    20.            if(a[i]>max) max=a[i];
    21.       }
    22.      
    23.        
    24.     printf("\n min=%d",min);
    25.     printf("\n max=%d",max);
    26.  getch();
    27. }

  4. #4
    Ngày gia nhập
    06 2008
    Bài viết
    51

    em cảm ơn các bác nhiều lắm!

  5. #5
    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 7261819 Xem bài viết
    Các pro sửa cho em bài này xem tại sao min nó cứ mãi bằng 1.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int n,i,min,max,a[100];
    5. void main()
    6. {
    7.      
    8.      printf("\n nhap n:="); scanf("%d", &n);
    9.      for(i=0;i<n;i++)
    10.      {printf("\n a[%d]=",i); scanf("%d",&a[i]);}
    11. min=1; max=0;
    12.    
    13.      for(i=0;i<n;i++)
    14.       if(a[i]<min)
    15.         min=a[i];
    16.      
    17.    
    18.      for(i=0;i<n;i++)
    19.       if(a[i]>max)
    20.         max=a[i];
    21.      
    22.        
    23.     printf("\n min=%d",min);
    24.     printf("\n max=%d",max);
    25.  getch();
    26. }
    * Vui lòng bọc code vào tag code khi post bài trên diễn đàn.
    bạn nên làm theo cách của quanghoang là đúng tư tưởng tìm min max . đừng có gán bừa như thế......
    bạn nhập vào toàn số >1 nên theo code của bạn min nó là 1 là đúng rồi.



    tuy nhiên cũng có thể cho nó 1 giá trị ban đầu ví dụ có thể gán bằng MAXINT

    min=MAXINT;

    ( MAXINT là hằng được định nghĩa trong values.h nhớ gộp nó vào trước khi sử dụng nhé)

    tuy nhiên theo mình cứ làm theo cách quang hoang là ổn nhất

    he he ( sr các bác vì em đã spam )
    ^_,^

    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

  6. #6
    Ngày gia nhập
    06 2008
    Bài viết
    51

    Mặc định Vấn đề về min ...

    cảm ơn bác langman đã góp ý, nhân tiện các bác sửa cho em bài này

    Code:
    #include<stdio.h>
    #include<conio.h>
    
      int a[100],i,n;
      
      void nhapn()
      { printf("\n nhap n:"); scanf("%d",&n); }
      
      void nhapmang()
      { for(i=0;i<n;i++)
        { printf("\n a[%d]=",i); scanf("%d",&a[i]); }
        
      void kt()
      { for(i=0;(i<n/2)&&(a[i]==a[i-n-1]);i++)
           if(i==n/2)
          return 1;
         else
          return 0;
       }
       
       void main()
       { nhapn();
         nhapmang();
         kt();
         if(kt()!=1)
         printf("\n mang ko doi xung");
         getch();
       }

  7. #7
    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 7261819 Xem bài viết
    cảm ơn bác langman đã góp ý, nhân tiện các bác sửa cho em bài này

    Code:
    #include<stdio.h>
    #include<conio.h>
    
      int a[100],i,n;
      
      void nhapn()
      { printf("\n nhap n:"); scanf("%d",&n); }
      
      void nhapmang()
      { for(i=0;i<n;i++)
        { printf("\n a[%d]=",i); scanf("%d",&a[i]); }
        
      void kt()
      { for(i=0;(i<n/2)&&(a[i]==a[i-n-1]);i++)
           if(i==n/2)
          return 1;
         else
          return 0;
       }
       
       void main()
       { nhapn();
         nhapmang();
         kt();
         if(kt()!=1)
         printf("\n mang ko doi xung");
         getch();
       }
    sai rồi bạn à.
    chắc bạn chưa hiểu rõ về return .
    return và trả về và đồng thời nó cũng là lệnh kết thúc hàm luôn . Hàm sẽ kết lúc luôn khi gặp return.


    sai ở đoạn này

    PHP Code:
     void kt()
      { for(
    i=0;(i<n/2)&&(a[i]==a[i-n-1]);i++)
           if(
    i==n/2)
          return 
    1;
         else
          return 
    0;
       } 
    có 2 xu hướng để code cái hàm kiểm tra. theo mình hiểu ý bạn là :
    duyệt ....
    sau khi duyệt thì nếu i==n/2 thì là đối xứng và ko thì là ko đối xứng đúng ko?

    ý này thì chỉ là nửa đúng nửa ko thôi bạn à

    ví dụ như chuỗi này là đối xứng
    1 2 3 4 5 5 4 3 2 1
    1 2 3 4 5 4 3 2 1
    2 dãy này đều đối xứng.
    nếu n chẵn thì ko nói
    nếu n lẻ thì n/2 ko bao giờ bằng i được ..... thế thì cứ dãy có n lẻ là ko đối xứng à ?
    vì thế nên sửa lại hàm như sau cho chuẩn :

    PHP Code:
            for (int i=0;i<n/2;i++)
              if (
    mang[i]!=mang[n-i-1]) return 0;
              return 
    1
    ^_,^

    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

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

    PHP Code:
        int flag=1;
            for (
    int i=0;i<n/2;i++)
              if (
    mang[i]!=mang[n-i-1]) {flag=0;break;}
              return 
    flag
    hoặc là thế này cũng được.....


    còn hàm kt của bạn có thể sửa qua qua như thế này : thêm dấu ; vào sau for tức là lặp xong rồi mới duyệt . đó là theo ý tưởng của bạn...
    PHP Code:
    void kt()
      { for(
    i=0;(i<n/2)&&(a[i]==a[i-n-1]);i++); << thêm dấu vào đây nè
           
    if(i==n/2)
          return 
    1;
         else
          return 
    0;
       } 
    tuy nhiên ý tưởng của bạn ko đúng đầu vì nếu n lẻ thì sao ???
    ^_,^

    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
    06 2008
    Bài viết
    51

    dạ vâng, em biết em sai mới lên đây hỏi ý các bác. Đúng là em hơi môn lung cái đoạn return nhg qua lời bác langman thì em hiểu hơn rồi. Để em xem lại có gì sẽ phải làm phiền các bác tiếp.

  10. #10
    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 7261819 Xem bài viết
    dạ vâng, em biết em sai mới lên đây hỏi ý các bác. Đúng là em hơi môn lung cái đoạn return nhg qua lời bác langman thì em hiểu hơn rồi. Để em xem lại có gì sẽ phải làm phiền các bác tiếp.
    sai nhưng mà cũng có ý tưởng hay mà. nó cũng có 1 phần đúng và 1 phần hay. hay là đã phá vỡ cái bình thường của vòng lặp. bạn biết kết hợp điều kiện vào trong vòng lặp. và có ý tưởng tốt.


    nếu theo code của bạn gặp return nó sẽ trả về và kết thúc hàm luôn tại đó
    bạn có gì cứ hỏi...

    PHP Code:
    dạ vâng 
    đừng dạ vâng. cứ gọi là bạn bè cho vui. chúng ta cùng trên 1 cộng đồng mà. hi hi. mình muốn là bạn của tất cả mọi người hi hi hi hi
    ^_,^

    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

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