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

Đề tài: Xuất ra ngày tiếp theo dựa trên ngày sin của bạn

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    3

    Mặc định Xuất ra ngày tiếp theo dựa trên ngày sin của bạn

    Đề : Xuất ra ngày tiếp theo dựa trên ngày sin của bạn
    Ví dụ : 29/02/1987 --> ngày tiếp theo là : 01/03/1988

    Đây là bài của mình làm trên C Free nhưng bị lỗi cần các bạn chữa giúp :

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <math.h>
    4. #include <iostream.h>
    5. int nextday(int ngay,int thang,int nam,int cuoi[])
    6. {
    7.     int ng=ngay,th=thang,nm=nam;
    8.    
    9.     if(ngay>cuoi[thang])
    10.     printf("Ngay nhap vao ko hop le");
    11.     else
    12.         {
    13.             if(ngay<cuoi[thang])
    14.             {
    15.                 ng=ngay+1;
    16.             }
    17.             else if (ngay==cuoi[thang])
    18.             {
    19.                 ng=1;
    20.                 th=thang+1;
    21.                 if(thang==12)
    22.                 {
    23.                     th=1;
    24.                     nm=nam+1;
    25.                 }
    26.             }
    27.                
    28.    
    29.     }
    30.    
    31.      
    32.     printf("\nNgay ke tiep : %d.%d.%d \n ",ng,th,nm);
    33.  
    34. }
    35.  
    36.  int main()
    37. {
    38.     int ngay,thang,nam;
    39.     int namthuong[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    40.     int namnhuan[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    41.    
    42.     printf("Nhap Ngay : ");
    43.     scanf("%3d",&ngay);
    44.     printf("Nhap Thang: ");
    45.     scanf("%3d",&thang);
    46.     printf("Nhap Nam: ");
    47.     scanf("%3d",&nam);
    48.    
    49.     if(ngay<1)
    50.     printf("Ngay khong hop le");
    51.     if (thang<1 || thang>12)
    52.     printf("Thang ko hop le");
    53.     if(nam<1)
    54.     printf("Nam Nhap vao ko hop le");
    55.    
    56.     else if(nam%400==0||nam%4==0)
    57.     nextday(ngay,thang,nam,namnhuan);
    58.     else
    59.     nextday(ngay,thang,nam,namthuong);
    60.    
    61.     return 0;
    62. }
    Đây là lỗi
    --------------------Configuration: mingw5 - CUI Debug, Builder Type: MinGW--------------------

    Checking file dependency...
    Compiling C:\Users\Administrator\Documents\C-Free\Temp\Untitled3.cpp...
    [Warning] C:\Users\Administrator\Documents\C-Free\Temp\Untitled3.cpp:62:2: warning: no newline at end of file

    Complete Make Untitled3: 1 warning(s)
    Cảm ơn các bạn nhiều , mong sớm được giải đáp.
    Đã được chỉnh sửa lần cuối bởi anhthien8 : 21-02-2012 lúc 01:56 AM. Lý do: Update bai giai

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

    sửa main thành void main() , hoặc int main() và ở cuối main có thêm câu return 0;
    Còn lại mấy cái lỗi kia là lỗi cú pháp cơ bản, Lấy con chuột click đúp vào cái tên của lỗi, trình dịch sẽ đưa bạn tới vị trí bị lỗi. Đưa con mắt nhìn quanh 1 hồi rồi sửa lại cho đúng
    ->Tự sửa
    Um Mani Padme Hum...!!

  3. #3
    Ngày gia nhập
    07 2009
    Nơi ở
    Thị trấn Lâm Thao - Phú Thọ
    Bài viết
    86

    hàm nextday trả về cái gì
    lỗi biên dịch
    thiếu }
    khởi tạo mảng sai
    truyền tham số thiếu
    Đã được chỉnh sửa lần cuối bởi kidteam : 20-02-2012 lúc 08:36 PM.
    Ngô Hùng Cường
    Birthday: 14/4/1986 - Cư ngụ: Thị trấn Lâm Thao - Phú Thọ
    kidteam@gmail.com
    Yahoo ID: cuong_dhbk2004
    0989696971
    0915696971

  4. #4
    Ngày gia nhập
    09 2011
    Bài viết
    3

    Phiền bạn sửa cụ thể cho mình
    theo mình biết
    int main() chả khác gì main() cả
    còn void thì ko cần return nhưng 1 số Compiler lại ko chạy dc khi có void ( mình ko biết tại sao)

  5. #5
    Ngày gia nhập
    07 2009
    Nơi ở
    Thị trấn Lâm Thao - Phú Thọ
    Bài viết
    86

    else {
    th=thang+1;
    nm=nam;
    thiếu } nhé bạn
    khởi tạo mảng dùng {} không dùng []
    truyền tham số thiếu
    nextday cần 4 tham số
    thiếu ; kết thúc lệnh
    túm lại sai, thiếu tùm lum bạn nên đọc thêm tài liệu nhé
    nếu bạn sắp thi hết môn thì nên thi lại 2,3 lần rồi học lại thêm 1,2 lần để lần sau thi tốt hơn nhé
    ok
    Đã được chỉnh sửa lần cuối bởi kidteam : 20-02-2012 lúc 08:39 PM.
    Ngô Hùng Cường
    Birthday: 14/4/1986 - Cư ngụ: Thị trấn Lâm Thao - Phú Thọ
    kidteam@gmail.com
    Yahoo ID: cuong_dhbk2004
    0989696971
    0915696971

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Mặc định Xuất ra ngày tiếp theo dựa trên ngày sin của bạn

    Trích dẫn Nguyên bản được gửi bởi anhthien8 Xem bài viết
    Phiền bạn sửa cụ thể cho mình
    theo mình biết
    int main() chả khác gì main() cả
    còn void thì ko cần return nhưng 1 số Compiler lại ko chạy dc khi có void ( mình ko biết tại sao)
    Một số trình dịch loại cổ đại thường hiểu main là int main. Chứ ko phải trình dịch nào cũng hiểu như thế
    Còn trình dịch ko cho chạy void main cũng đúng, vì nó một số loại trình dịch khác(tùy loại project) lại ko cho dùng void main. Đơn giản nhu thế
    Cho nên tôi đã thận trọng chỉ cho bạn 2 cách (vì tôi ko biết bạn dùng cái gì)
    Bạn không chịu làm theo rồi còn ngồi đấy mà cãi bướng
    Um Mani Padme Hum...!!

  7. #7
    Ngày gia nhập
    09 2011
    Bài viết
    3

    ah ko phải mình cãi gì bạn đâu , thực ra thầy nói tớ tạm hiểu thế , nên lên đây hỏi sẽ tốt hơn để tớ có thể hiểu sâu hơn.
    Cảm ơn các bạn.

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

    Bạn cho mình hỏi thêm , sau khi sửa chuơng trình xong thì lúc xuất ra cái năm
    ví dụ ngày sinh là 12/12/1992 nó xuất ra năm chỉ có 3 chữ số hà (199) , mình ko hiểu tại sao lại thế, các bạn xem dùm và chỉ mình cách sửa nha.Cảm ơn các bạn.

  9. #9
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Đâu ? Đoạn code xuất ra năm đâu ?
    Ai bảo scanf 3d ?
    printf("Nhap Nam: ");
    scanf("%3d",&nam);

    Nhập vào năm có 3d sao in ra 4d được bạn ?

    Sửa đi, sửa đi cho nó chạy rồi sửa tiếp cái lỗi này, sai thuật toán
    C++ Code:
    1.         else if (ngay==cuoi[thang])
    2.             {
    3.                 ng=1;
    4.                 th=thang+1;
    5.                 if(thang==12)
    6.                 {
    7.                     th=1;
    8.                     nm=nam+1;
    9.                 }
    10.             }
    Sai thuật toán này.
    Đặt vào trừong hợp 30 tháng 11 đi ha.
    Rồi tự chạy tay xem nó ra cái gì ha.
    Đã được chỉnh sửa lần cuối bởi clchicken : 21-02-2012 lúc 02:21 AM.
    Um Mani Padme Hum...!!

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

  1. Hiện thị danh sách trên XtraReport theo cách tiết kiệm giấy
    Gửi bởi ndnhan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 23-07-2013, 01:53 PM
  2. Trả lời: 4
    Bài viết cuối: 10-09-2012, 06:34 PM
  3. Duyệt và lọc ra các dòng trực tiếp trên gridcontrol theo điều kiện
    Gửi bởi hungvboys trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 23-08-2012, 10:52 AM
  4. Hàm trong C làm sao để cho dữ liệu xuất ra theo số cột mà mình muốn
    Gửi bởi dangy1989 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 28
    Bài viết cuối: 09-07-2012, 10:55 AM
  5. Tạo hình chữ nhật xuất hiện theo thời gian trên Winform C#
    Gửi bởi quangbinhit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 27-05-2011, 12:49 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