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

Đề tài: Code kiểm tra dãy cấp số cộng bằng C. Kiểm tra giúp mình xem chạy đúng không?

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

    Red face Code kiểm tra dãy cấp số cộng bằng C. Kiểm tra giúp mình xem chạy đúng không?

    Mọi người xem giúp mình code này nhé,mình không biết là sai hay đúng nữa

    C Code:
    1. /* Nhap so tu nhien N va day so thuc a[0],a[1].....a[n] .Sau do kiem tra day nay co lap thanh CSC hay k */
    2. #include <stdio.h>
    3. #include <conio.h>
    4. void   main()
    5. {
    6. int n,i;
    7. float A[100];
    8. int flag;
    9. printf("\nNhap so n:");
    10. scanf("%d",&n);
    11. /********** DOC CAC GIA TRI MANG ********/
    12. for(i=0;i<n;i++)
    13. {
    14.     printf("\nA[%d] =",i);
    15.     scanf("%f",&A[i]);
    16. }
    17.   /********** IN MANG RA MAN HINH*********/
    18.     printf("\nMang gom :");
    19. for(i=0;i<n;i++)
    20.     printf("%12f",A[i]);
    21.   /********** KIEM TRA CAP SO CONG *********/
    22. for(i=0;i+2<n;i++)
    23.     if(A[i+2]-A[i+1]!=A[i+1]-A[i])
    24. {
    25.  flag=0;
    26. break;
    27. }
    28.  if(flag == 0)
    29.     printf("\nKhong la csc");
    30.  else
    31.      printf("\nLa csc");
    32.     getch();
    33. }
    Kết quả khi mình nhập dãy 0,2 0,4 0,6 0,8 là " Khong la csc "
    Kết quả cũng thế nếu dãy là 0,3 0,6 0,9 1,2 1,5
    Nhưng nếu nhập 0,5 1,0 1,5 2,0 thì kết quả là " La csc"
    Ai có thể cho tôi biết code của tôi sai hay là các dãy 0,2 0,4 0,6 ....
    và 0,3 0,6 0,9 .... không phải là csc
    Cảm ơn nhiều !!!


    cho code vào tag code nhé - langman
    Đã được chỉnh sửa lần cuối bởi langman : 31-03-2009 lúc 01:30 PM.

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

    ủa mình nhớ lớp 11 học dãy cấp số cộng là 2, 4, 6, 8 mà?
    a, a + i, a + 2i, a + 3i,... a + ni.

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

    Code của bạn đúng rồi. Trong các dãy bạn vừa nêu trên, không có dãy nào là cấp số cộng hết.
    Nhưng nếu nhập 0,5 1,0 1,5 2,0 thì kết quả là " La csc"
    Dãy này không phải là cấp số cộng, chương trình cũng thông báo như vậy.

    Dãy sau là cấp số cộng:3,5,7,9,11
    Hoặc dãy sau cũng là CSC: 2,2,2,2,2,2,2.
    hoặc dãy sau cũng là CSC: 24,29,34,39,44,49......
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

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

    Chương trình này thì chạy, nhưng ko tạo dc mảng với kiểu số double

    Chương trình tạo mảng là dãy cấp số cộng.
    Program creates an array that is arthimetic sequence.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #define     n   100
    4. void main()
    5. {int k, i, a[n];  printf(“Nhap vao so a[1] va so cong:  \n”); scanf(%d %d”,  &a[1], &k);
    6. for (i = 1; i < n; i++)  {a[i + 1] = a[i] + k;  printf (“a[%d] = %d  \n”, i, a[i]);}
    7. getch();}

    còn chương trình tạo mảng là cấp số nhân ko chạy?
    Program creates an array that is geometric progression.
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #define     n   100
    4. void main()
    5. {int k, i, a[n];  printf(“Nhap vao so a[1] va so nhan:  \n”); scanf(%d %d”,  &a[1], &k);
    6. for (i = 1; i < n; i++)  {a[i + 1] = a[i]*k;  printf (“a[%d] = %d  \n”, i, a[i]);}
    7. getch();}

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

    Với số thực thì so sánh == (hay !=) sẽ ko chính xác, nên ko bao vờ nên so sánh, vì sao thì tìm hiểu floating point là biết.

    Có thể chuyển thành so sánh >= hay <= gì đó. Nhưng mình cũng ko chắc là nó có work 100% ko, tốt nhất là ko nên so sánh = với số thực thôi.

  6. #6
    Ngày gia nhập
    01 2009
    Bài viết
    165

    Mặc định Code kiểm tra dãy cấp số cộng bằng C. Kiểm tra giúp mình xem chạy đúng không?

    chẳng lẽ ko có cách nào để so sánh 2 số thực sao?vậy thì đành phải dùng C++ cho chắc ăn.
    Đã được chỉnh sửa lần cuối bởi kimduquan : 08-04-2009 lúc 08:58 PM.

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

    Giờ mới biết cái này. Bạn thử đặt a = a[i] + csc, và b = a[i+1] rồi ss xem
    Đã được chỉnh sửa lần cuối bởi xiu_coi : 11-04-2009 lúc 01:22 AM.

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

    Chẳng lẽ không có cách nào khắc phục sao
    Không biết khi nộp bài cho cô ,cô có cho là sai không nữa

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

  1. Lập trình C giúp em với viết code đúng mà không hiển thị màn hình!
    Gửi bởi gato trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 16-10-2012, 05:34 PM
  2. Bài tập C Thiết kế mạch điện ghép nối mạch phát còi báo động qua cổng LPT. Code viết bằng C chạy không đúng như muốn!
    Gửi bởi mottraitims trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 18-05-2012, 04:33 AM
  3. compiler Warning: Unreachable code và chạy sai trong khi code đúng. Vì sao?
    Gửi bởi lovemoney trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 19
    Bài viết cuối: 19-01-2012, 10:02 PM
  4. Code đếm khoảng trắng chạy lỗi kiểm tra không ra đúng kết quả?
    Gửi bởi higushima trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 27-11-2011, 08:15 PM
  5. Đoạn code tìm hàng có tổng max trong ma trận chạy không đúng, sửa thế nào??
    Gửi bởi zodjac1990 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: 23-07-2011, 12:35 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