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

Đề tài: Code tìm các số nguyên tố trong mảng. Giúp em sửa lỗi?

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    523

    Mặc định Code tìm các số nguyên tố trong mảng. Giúp em sửa lỗi?

    Giúp em sửa lỗi code tìm các số nguyên tố trong mảng
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <stdlib.h>
    4. #include <math.h>
    5. #include <time.h>
    6. #define  n  100
    7.  
    8. int  nt(int i)
    9. {int a = 1, x = 2;  {if( i % x == 0)  a=0;      else {if (i % x != 0)  a = 1;}}
    10. for ( x = 3; x <= i; x = x +2)
    11.     {if( i % x == 0)   a = 0;   else {if (i % x != 0)  a = 1;}} return a;   }
    12.  
    13. void main()
    14. {int a[n], k, t;  printf("mang co %d phan tu  \n", n);      srand (time( 0 ));
    15. for(t = 1; t <= n; t++)     {a[t - 1] = rand()%201 - 100;}
    16. int i, j, w1;   for(i = 0; i < n; i++) 
    17. for(j = i + 1; j < n; j++)  if(a[i] > a[j])     {w1 = a[i];  a[i] = a[j];  a[j] = w1;}
    18. for (k = 0;  (k < n);  k++) {printf (“a[%d] = %d  \n”, k, a[k]);}
    19. printf (“Cac so nguyen to trong mang la:);
    20. for (k = 0;  (k < n);  k++) if (nt (a[k] == 1) )     {printf (“a[%d] = %d  \n”, k, a[k]);}
    21. getch();}

    giúp em sửa lỗi đoạn code nhập các giá trị dương cho mảng với.
    Với cùng 1 cách khai báo nhưng đoạn code trên ko bị lỗi Unhandle Exception nhưng đoạn code dưới lại bị?
    Program for entering random positive values into array.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <stdlib.h>
    4. #include <time.h>
    5. #define  n  100
    6. void main()
    7. {int a[n], k, t;    printf("This array have %d elements  \n", n);       srand (time( 0 ));
    8. //Nhập các giá trị dương ngẫu nhiên vào mảng – Enter random positive values into array.
    9. for(t = 1; t <= n; t++)     {a[t - 1] = rand()%201 - 100;  
    10. a[t – 1] > 0  ?  a[t – 1] : – a[t – 1];}
    11. // Sắp xếp mảng – Arranging array
    12. int i, j, w1;   for(i = 0; i < n; i++) 
    13. for(j = i + 1; j < n; j++)  if(a[i] > a[j])     {w1 = a[i];  a[i] = a[j];  a[j] = w1;}
    14. /* Xuất các phần tử của mảng sau khi đã sắp xếp.
    15. Outputting elements of array after sorting.  */
    16. for (k = 0;  (k < n);  k++) {printf (“a[%d] = %d  \n”, k, a[k]);}
    17. getch();}
    Đã được chỉnh sửa lần cuối bởi langman : 31-03-2009 lúc 05:41 PM.

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

    Vì bạn trình bày code ghê quá nên mọi người ngại không đọc code cho bạn. Dưới là bài của bạn sau khi chỉnh sửa:
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <stdlib.h>
    4. #include <math.h>
    5. #include <time.h>
    6. #define  n  100
    7.  
    8. int  nt(int x) // hoc cach su dung hieu qua lenh return
    9. {
    10.     if (x<2) return 0;
    11.     int i;
    12.     for ( i=2; i<=sqrt(x); i++)
    13.         if (x%i==0) return 0;
    14.     return 1;
    15. }
    16.  
    17. int main()
    18. {
    19.     int a[n],i;
    20.     printf("Mang co %d phan tu  \n", n);
    21.     srand (time( 0 ));
    22.     for (i=0; i<n; i++)
    23.     {
    24.         a[i] = rand()%201 - 100;
    25.     }
    26.     int j, w1;
    27.     for (i=0; i<n; i++)
    28.         for (j=i+1; j<n; j++)
    29.             if(a[i] > a[j])
    30.             {
    31.                 w1 = a[i];
    32.                 a[i] = a[j];
    33.                 a[j] = w1;
    34.             }
    35.  
    36.     for (i=0; i<n; i++)
    37.         printf ("%6d ",a[i]);
    38.  
    39.     printf ("\n\nCac so nguyen to trong mang la: ");
    40.     for (i=0; i<n; i++)
    41.         if (nt(a[i]))
    42.             printf ("%d ",a[i]);
    43.     getch();
    44. }

    Cố gắng xem lại cách trình bày và cách dùng return trong chương trình con.

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    523

    do em trình bày trong Word, tiết kiệm space 1 tí
    các câu lệnh na ná nhau em để nó trên 1 dòng
    em có ghi cách khoảng mà, đâu đến nỗi đọc đui mắt?
    trình bày trên forum và Visual ko dc đẹp lém, nhưng trình bày như thế trong Word đẹp mà.
    em thấy bài em sai ko nặng lém, anh có thể chỉ ghi chỗ sai thôi là ok rồi và dễ nhận ra lỗi.
    Sửa lỗi cách dùng từ tiếng anh cho em luôn nhá, đang tự học tiếng anh.
    Cho em hỏi giải thuật xét 1 số có là số nguyên tố
    Nếu x chia hết cho 2 thì đâu cần xét x có chia hết cho 4?
    Vậy ta xét riêng trường hợp x có chia hết cho 2, sau đó cho for (i = 3; i < sqrt(x); i = i + 2)
    như vậy sao máy chạy sai?
    Đã được chỉnh sửa lần cuối bởi chuong01 : 30-03-2009 lúc 05:39 PM.

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

    Đừng type ra word nữa, mở file *.c bằng notepad mà đưa bài lên diễn đàn.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <stdlib.h>
    4. #include <time.h>
    5. #define  n  100
    6.  
    7. int main()
    8. {
    9.     int a[n], k, t;
    10.     printf("This array have %d elements  \n", n);
    11.     srand (time( 0 ));
    12.  
    13.     for(t = 0; t < n; t++)
    14.     {
    15.         a[t] = rand()%201 - 100;
    16.         if (a[t]<0) a[t] = -a[t];
    17.     }
    18.  
    19.     int i, j, w1;
    20.     for(i = 0; i < n-1; i++)
    21.         for(j=i+1; j < n; j++)
    22.             if(a[i] > a[j])
    23.             {
    24.                 w1 = a[i];
    25.                 a[i] = a[j];
    26.                 a[j] = w1;
    27.             }
    28.  
    29.     for (k = 0;  (k < n);  k++)
    30.     {
    31.         printf ("a[%d] = %d  \n", k, a[k]);
    32.     }
    33.     getch();
    34. }

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

    cho em hỏi sao dùng toán tử điều kiện lại sai?
    Đã được chỉnh sửa lần cuối bởi chuong01 : 31-03-2009 lúc 11:37 AM.

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

    Mặc định Code tìm các số nguyên tố trong mảng. Giúp em sửa lỗi?

    cho em hỏi sao dùng toán tử điều kiện lại sai?
    Không hẳn là sai, nhưng không cần.

    Bạn có thể dùng như này:

    a[t] = a[t] >= 0 ? a[t]:-a[t];

  7. #7
    Ngày gia nhập
    03 2009
    Bài viết
    523

    bài của anh đúng rồi
    mà khi em học thì cấu trúc nó là như vậy
    <expression 1st> ? < expression 2nd > : < expression 3rd > (expression: biểu thức)
    • < expression 1st > đúng thì giá trị là < expression 2nd >.
    • < expression 1st > sai thì giá trị là < expression 3rd >.
    Toán tử điều kiện tính toán một biểu thức và trả về một giá trị khác tuỳ thuộc vào biểu thức đó là đúng hay sai. Cấu trúc của nó như sau:
    condition ? result 1 : result 2
    Nếu condition là true thì giá trị trả về sẽ là result 1, nếu condition là false giá trị trả về là result 2.
    7 == 5 ? 4 : 3 trả về 3 vì 7 không bằng 5.
    7 == 5 + 2 ? 4 : 3 trả về 4 vì 7 bằng 5+2.
    5 > 3 ? a : b trả về a, vì 5 lớn hơn 3.
    a > b ? a : b trả về giá trị lớn hơn, a hoặc b.

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

  1. Viết hàm đếm các phần tử là số nguyên tố trong mảng, giúp sửa code
    Gửi bởi mrcuhuy 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: 31-12-2013, 11:59 AM
  2. Tạo ngẫu nhiên danh sách các số nguyên viết bằng C. Xem code giúp mình?
    Gửi bởi mr.en_tu_di trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 20-03-2011, 01:08 AM
  3. Code in ra số nguyên tố và số chính phương của một dãy trên C. Giúp mình kiểm tra code?
    Gửi bởi lavender trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 7
    Bài viết cuối: 07-06-2009, 01:52 PM
  4. Xin giúp sửa code bài tìm số nguyên tố dùm
    Gửi bởi dkdai trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 11
    Bài viết cuối: 08-03-2009, 11:50 AM
  5. Code về số nguyên tố. Giúp em sửa
    Gửi bởi DầuCùLà trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 27-11-2007, 08:53 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