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

Đề tài: Tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng

  1. #1
    Ngày gia nhập
    03 2007
    Nơi ở
    Quảng Ngãi
    Bài viết
    9

    Mặc định Tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng

    nếu giúp được mình cảm ơn nhiều!
    cho mảng một chiều các số nguyên.Hãy viết chương trình tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng
    mson

  2. #2
    No Avatar
    Nhuan_Trang_Only_Love Khách

    Trích dẫn Nguyên bản được gửi bởi minhson Xem bài viết
    nếu giúp được mình cảm ơn nhiều!
    cho mảng một chiều các số nguyên.Hãy viết chương trình tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng
    Tôi hok có thời gian viết code, chúng ta cùng trao đổi. Ý tưởng thế này:
    1.Bạn tạo một fun Min_Le(int a[]) , return(); ->bạn tìm được phần tử lẻ min
    2.Tạo một fun test(int a[],int le_min). Trong fun này bạn kiểm tra xem phần tử nào chẵn max và < le_min.
    Chú ý: trong fun này bạn so sánh
    Code:
          int temp=0;//vì số 0 không là số nguyên nên bạn cứ gán thoải mái
           for(int i=0;i<n;i++)
             if(a[i]%2==0&&a[i]<le_min) 
              if(a[i]>temp)  temp=a[i];
           if(temp==0)  cout<<"khong co so nao thoa man";//cái này bạn có thể so sánh điều kiện khi kiểm tra số lẻ min bằng biến count cũng được để kết luận
           else cout<<"phan tu do la"
                       <<temp;

  3. #3
    Ngày gia nhập
    11 2006
    Bài viết
    8

    Nhuan_trang giải thích rõ hơn về hàm này cho mình được không?
    C++ Code:
    1. int temp=0;//vì số 0 không là số nguyên nên bạn cứ gán thoải mái
    2.        for(int i=0;i<n;i++)
    3.          if(a[i]%2==0&&a[i]<le_min)
    4.           if(a[i]>temp)  temp=a[i];
    5.        if(temp==0)  cout<<"khong co so nao thoa man";//cái này bạn có thể so sánh điều kiện khi kiểm tra số lẻ min bằng biến count cũng được để kết luận
    6.        else cout<<"phan tu do la"
    7.                    <<temp;

    Còn đây là code mình viết dựa trên ý tưởng của Nhuan_trang
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. void main()
    5. {
    6.     int i,j,max,n,x[100],temp=0,t;
    7.  
    8.  do
    9.  {
    10.     printf("\nNhap vao so luong phan tu N = ");
    11.     scanf("%d",&n);
    12.  }
    13.     while((n<1)||(n>500));
    14.  
    15.     for(i=0;i<n;i++)
    16.     {
    17.         printf("\nx[%d]=",i);
    18.         scanf("%d",&x[i]);
    19.     }
    20.  puts("\nday ban dau: ");
    21.  for(i=0;i<n;i++)
    22.  printf("%d\t",x[i]);
    23.  
    24.     i=0;
    25.     while((i<n)&&((x[i]%2)==0))
    26.     i++;                                //xac dinh so am dau tien
    27.     if(i==n)
    28.     printf("\nDay so ko co so le.");   // day ko co so am
    29.     else
    30.     {          
    31.         t=x[i];
    32.         for(j=i+1;j<n;j++)            //vong lap tim so am lon nhat
    33.             if(((x[j]%2)==1)&&(x[j]<t))
    34.                 t=x[j];
    35.                 printf("\nSo le nho nhat: %d\t",t);
    36.     }
    37.  
    38.        for(i=0;i<n;i++)
    39.             if(x[i]%2==0&&x[i]<t)
    40.             if(x[i]>temp)
    41.             temp=x[i];
    42.             if(temp==0)
    43.             printf("\nKhong co so nao thoa man");
    44.             //cái này ban có the so sánh dieu kien khi
    45.             // kiem tra so le min bang bien count cung duoc de ket luan
    46.             else
    47.             printf("\nPhan tu do la: %d",temp);
    48.  
    49. }

  4. #4
    No Avatar
    Leon88 Khách

    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. main()
    4. {int a[100],n,i,minl,j;
    5. clrscr();
    6. printf("\nNhap vao so phan tu cua mang n : ");scanf("%d",&n);
    7. for (i=1;i<=n;i++)
    8. {printf("\nNhap vao phan tu a[%d] : ",i);
    9. scanf("%d",&a[i]);}
    10. minl=30000;
    11. for (i=1;i<=n;i++)
    12. if (a[i]%2!=0 & a[i]<minl) minl=a[i];
    13. j=0;
    14. for (i=1;i<=n;i++)
    15. if (a[i]%2==0 & a[i]<minl & a[i]>j) j=a[i];
    16. printf("\n so tim dc la : %d",j);}
    Ngắn gọn dễ hiểu ! tìm số lẻ bé nhất rồi tìm số chẵn bé hơn số lẽ đó gắn max ban đầu cho số chẵn tìm dc tìm nữa nếu có số chẵn nào thoả mãn điều kiện và lớn hơn max thì gán max= số đó
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 21-03-2009 lúc 09:40 PM. Lý do: sai chính tả ^ ^

  5. #5
    Ngày gia nhập
    11 2006
    Bài viết
    8

    Hay thật!Cách của leon88 vừa ngắn vừa dễ hiểu,hay lắm!!!

  6. #6
    No Avatar
    dudepro Khách

    Mặc định Tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng

    Tiện đây cho mình hỏi luôn 1 câu như này:
    "Nhập vào 1 dãy số thực n (N<=100)
    Tìm trong dãy những số chia hết cho 3 và tính trung bình cộng các số đó."

  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 minhson Xem bài viết
    nếu giúp được mình cảm ơn nhiều!
    cho mảng một chiều các số nguyên.Hãy viết chương trình tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng
    Bài này giải quyết như sau:
    Code:
    B1: Tìm min của các số lẻ trong mảng.(cái này chắc bạn làm được)
    B2: tìm max theo cách này:
    Giả sử min_le=số min của các số lẻ trong mảng.
     kq=-00 (âm vô cực)
     For i=0 to a.length
               if(a[i]%2==0&&a[i]>kq&&a[i]>min_le)
                              kq=a[i];
    Kết quả: kq!=-00 là số cần tìm.
    k==-00 xảy ra khi dãy toàn le.hay min_chan>min_le.
    À quên nữa phải tính đến mảng toàn chẳn nữa.
    Đã được chỉnh sửa lần cuối bởi shinichi_haha : 23-03-2007 lúc 07:05 PM.

    OoShinHaoO

  8. #8
    No Avatar
    Leon88 Khách

    Tiện đây cho mình hỏi luôn 1 câu như này:
    "Nhập vào 1 dãy số thực n (N<=100)
    Tìm trong dãy những số chia hết cho 3 và tính trung bình cộng các số đó."
    tong=0;j=0;
    For (i=1;i<=n,i++) if (a[i]%3=0) {tong+=a[i] ; j++; b[j]=a[i];}
    Xét nguyên dãy số nào chia hết cho 3 thì cộng thêm vào tong , và gán nó vào mảng b[j] .

  9. #9
    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 Leon88 Xem bài viết
    tong=0;j=0;
    For (i=1;i<=n,i++) if (a[i]%3=0) {tong+=a[i] ; j++; b[j]=a[i];}
    Xét nguyên dãy số nào chia hết cho 3 thì cộng thêm vào tong , và gán nó vào mảng b[j] .
    Bước đầu tiên làm phải tìm mảng con là mảng số nguyên cái đã. Do số thực làm gì có phép toán
    Đề bài cho là mảng số thực.
    do đó mình sữa lại điều kiện cho hợp lý if( a[i]-(int)a[i]==0 && (int)a[i]%3==0)
    Đã được chỉnh sửa lần cuối bởi shinichi_haha : 23-03-2007 lúc 07:21 PM.

    OoShinHaoO

  10. #10
    No Avatar
    Leon88 Khách

    Bước đầu tiên làm phải tìm mảng con là mảng số nguyên cái đã.
    Đề bài cho là mảng số thực.
    Số thực mod 3 có bao giờ bằng 0 đâu mà phải tìm mảng số nguyên. Mong huynh nói kĩ hơn cho đệ học hỏi ... còn gà C quá T_T . kiểu float ko tính toán dc >.< ra la vậy ...ty
    Đã được chỉnh sửa lần cuối bởi Leon88 : 23-03-2007 lúc 07:24 PM.

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

  1. Bài tập C++ Nhập vào các số nguyên dương in ra số chẵn lẻ
    Gửi bởi tuanlt10 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 24-07-2013, 10:56 AM
  2. In số nguyên chẵn nhỏ nhất trong danh sách?
    Gửi bởi tadenday 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: 26-09-2011, 03:55 PM
  3. Bài tập C Tính tích các số lẽ từ 1 đến n, tích các số chẵn từ 2 đến n với n nhập từ bàn phím
    Gửi bởi pengox2011 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 12-04-2011, 02:20 PM
  4. Tìm cột có số chẵn nhiều nhất trong ma trận
    Gửi bởi hoahoctro207 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 16-01-2011, 08:50 AM
  5. nhập vào dãy số nguyên in ra dãy chẵn và dãy lẻ
    Gửi bởi live45love trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 01-04-2007, 01:19 AM

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