PDA

View Full Version : Lập trình C Code tìm ngày kế tiếp của ngày hiện tại, if(ngay==danhsach[thang]) nghĩa là gì?



ozu_vp
19-10-2012, 10:14 AM
// mẫu tìm ngày hôm sau.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;
#include<stdio.h>

int checknextdate(int danhsach[],int ngay,int thang,int nam)
{
int ng,th,nm;


if(ngay==danhsach[thang])
{
ng=1;
th=thang+1;
}
else
{
ng=ngay+1;
th=thang;
}
if(thang==12 && ngay==danhsach[thang])
{
nm=nam+1;
th=1;
}
else

nm=nam;

printf("Ngay tiep theo la: ngay %d thang %d nam %d\n",ng,th,nm);

return 0;

}
void main()
{
int namthuong[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int namnhuan[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int ngay,thang,nam;


printf("Nhap vao ngay thang nam hien tai\n");
printf("Ngay: ");scanf("%d",&ngay);
printf("Thang: ");scanf("%d",&thang);
printf("Nam: ");scanf("%d",&nam);

if(nam%400==0 || (nam%4==0 && nam%100!=0))
checknextdate(namnhuan,ngay,thang,nam);
else
checknextdate(namthuong,ngay,thang,nam);

}



đoạn code này mình thấy hay nhưng không hiểu chỗ in đậm cho lắm, mong mọi người giải thích giúp ý nghĩa của câu lệnh đó....tks!

no0bVN
19-10-2012, 10:20 AM
Có gì đâu ,cái mảng danhsach[] đó lưu số ngày trong các tháng ( hay chính là ngày cuối cùng của tháng) ,nếu ngay bạn truyền vào trong hàm đó là ngày cuối tháng thì ngày tiếp theo hiển nhiên là mùng 1 đầu tháng tiếp theo ( lệnh gán ng = 1; th = thang + 1;) đó

Và trong hàm main thì cái mảng danhsach[] đó chia thành 2 loại : dùng cho năm thường và năm nhuận

clchicken
20-10-2012, 12:04 AM
Code của bạn viết mà giờ đi hỏi "em viết cái gì vậy? " là sao ?
Code lấy trên mạng phải hông ?
Lấy code ở đâu thì hỏi ở chỗ đó.

daotien0887
22-10-2012, 10:18 AM
// mẫu tìm ngày hôm sau.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;
#include<stdio.h>

int checknextdate(int danhsach[],int ngay,int thang,int nam)
{
int ng,th,nm;


if(ngay==danhsach[thang])
{
ng=1;
th=thang+1;
}
else
{
ng=ngay+1;
th=thang;
}
if(thang==12 && ngay==danhsach[thang])
{
nm=nam+1;
th=1;
}
else

nm=nam;

printf("Ngay tiep theo la: ngay %d thang %d nam %d\n",ng,th,nm);

return 0;

}
void main()
{
int namthuong[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int namnhuan[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int ngay,thang,nam;


printf("Nhap vao ngay thang nam hien tai\n");
printf("Ngay: ");scanf("%d",&ngay);
printf("Thang: ");scanf("%d",&thang);
printf("Nam: ");scanf("%d",&nam);

if(nam%400==0 || (nam%4==0 && nam%100!=0))
checknextdate(namnhuan,ngay,thang,nam);
else
checknextdate(namthuong,ngay,thang,nam);

}



đoạn code này mình thấy hay nhưng không hiểu chỗ in đậm cho lắm, mong mọi người giải thích giúp ý nghĩa của câu lệnh đó....tks!
Thì kiểm tra xem có phải là ngày cuối tháng hay không mà thôi. DanhSach chinh la mảng NamThuong or NamNhuan do.