C++ 定义一个结构体变量,计算该日是一年中的第几天
using namespace std;
struct date
{
int year;
int month;
int day;
};a
int leapyear(int a.year);
int calculate(struct date a);
int leapyear(int a.year);//判断是否为闰年
{
if((a&4==0&&a&100!=0)||a&400==0)
return 1;
else
return 0;
}
int calculate(struct date a);//计算一年中的第几天
{
int sum=0;b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i;
for(i=0;i<a.mouth;i++)
sum=sum+b[i];
if(a.month>2)
sum=sum+a.day+leapyear(a);
else
sum=sum+a.day;
return sum;
}
int main()
{
struct date a;
cout<<"请输入年月日"<<endl;
cin>>a.year>>a.month>>a.day;
int x;
x=calculate(a);
cout<<"该日是一年中的第"<<x<<"天"<<endl;
return 0;
}
到底哪错了啊! 展开
先解决这几个问题,最后两个的问题是你在函数体没有写的时候就加了:“;”;
还有求闰年的函数头也出了点小问题。
我完善了一下程序,不过算法你需要自己改:
比如我输入:2016 1 1时结果就不对。
#include<iostream>
using namespace std;
struct date
{
int year;
int month;
int day;
} a;
/*结构体定方式:
struct 结构体名称{
参数
} 结构体别名;
*/
int leapyear(int year);
int calculate(date a);//函数定义:返回值类型 函数名(参数类型 参数名){函数体}
//你只需要的参数类型的名为date的结构体。
int leapyear(int year)//判断是否为闰年
{
if((year%4 == 0 && year%100 != 0)||year % 400==0)
return 1;
else
return 0;
}
int calculate(date a)//计算一年中的第几天
{
int sum=0;//这里不能再用前面的int了
int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i;
for(i=0;i<a.month;i++)
sum=sum+b[i];
if(a.month>2)
sum=sum+a.day+leapyear(a.year);
else
sum=sum+a.day;
return sum;
}
int main()
{
struct date a;
cout<<"请输入年月日"<<endl;
cin>>a.year>>a.month>>a.day;
int x;
x=calculate(a);
cout<<"该日是一年中的第"<<x<<"天"<<endl;
return 0;
}
最后望采纳。
改过可以运行,但你的问题太多:
结构体变量、数组变量声明格式错:变量声明要有;结束,同时,结束后要再声明时要加类型。
函数形参为:类型+变量,你所用的方式是错的。
函数声明后接着定义时,不能加;。
自己要学会看错误提示。
#include<iostream>
using namespace std;
struct date
{
int year;
int month;
int day;
};
date a;
int leapyear(int x);
int calculate(struct x);
int leapyear(int x)//判断是否为闰年
{
if (((x & 4 == 0) && (x & 100 != 0) )||( x & 400 == 0))
return 1;
else
return 0;
}
int calculate(date a)//计算一年中的第几天
{
int sum = 0;
int b[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int i;
for (i = 0; i < a.month; i++)
sum = sum + b[i];
if (a.month > 2)
sum = sum + a.day + leapyear(a.year);
else
sum = sum + a.day;
return sum;
}
int main()
{
struct date a;
cout << "请输入年月日" << endl;
cin >> a.year >> a.month >> a.day;
int x;
x = calculate(a);
cout << "该日是一年中的第" << x << "天" << endl;
return 0;
}