Đề: .Nhập vào 2 bộ ngày, tháng, năm. Tính khoảng cách (số ngày) giữa hai ngày vừa
nhập.
mình xài mảng ko có error j hết nhưng kết quả ra sai hoàn toàn, không biết thuật toán mình có sai ở đâu không
#include<stdio.h>
void nhap(int &d1, int &d2, int &m1, int &m2, int &y1, int &y2);
int tinh(int d1, int d2, int m1, int m2, int y1, int y2, int thang[], int thangnhuan[]);
void xuat( int ngay);
void main()
{
int thang[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int thangnhuan[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int d1,d2,m1,m2,y1,y2;
nhap(d1,d2,m1,m2,y1,y2);
int ngay=tinh(d1,d2,m1,m2,y1,y2,thang,thangnhuan);
xuat(ngay);
}
void nhap(int &d1, int &d2, int &m1, int &m2, int &y1, int &y2)
{
printf("nhap ngay thang nam thu nhat");
scanf("%d%d%d",&d1,&m1,&y1);
printf("nhap ngay thang nam thu hai");
scanf("%d%d%d",&d2,&m2,&y2);
}
int tinh(int d1, int d2, int m1, int m2, int y1, int y2,int thang[], int thangnhuan[])
{
int S;
while(!(m1==m2&&y1==y2))
{
if((y1%4==0&&y1%100!=0)||(y1%400==0))
{
S=thangnhuan[m1-1]-d1+1;
m1++;d1=1;
if(m1==13)
{
y1++;
m1=1;d1=1;
}
continue;
}
S=thang[m1-1]-d1+1;
m1++;d1=1;
if(m1==13)
{
y1++;
m1=1;d1=1;
}
}
return S;
}
void xuat( int ngay)
{
printf("%d",ngay);
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?