注册 登录
编程论坛 C++教室

【求助】时间计算

TND 发布于 2009-09-18 23:14, 361 次点击
输入年月日和星期几,再输入n,计算前n天的日期和星期几?我写了一个可出现fatal error C1189: #error :  "eh.h is only for C++!"
执行 cl.exe 时出错.
怎么回事啊?

#include<iostream>
using namespace std;
void main()
{
    int f1(int x);
    int k,y1,m1,d1,n,y2,m2,d2,y,t;
    cout<<"输入年y1月m1日d1和星期几y和天数n"<<endl;
    cin>>y1>>m1>>d1>>y>>n;
    t=n%7;
    x=y+t;   
    m2=m1;y2=y1;
    n=n-d1-1;
    m2--;
    if(m2<1) y2--;
    d2=f1(m2);
    while(n>0)
    {k=f1(m2);
    n=n-k;m2--;
    if(m2<1)y2--;
    }
    d2=f1(m2)-n;
    cout<<"年:"<<y2<<"月:"<<m2<<"日:"<<d2<<"星期:"<<x<<endl;

}
int f1(int x)
{int p;
    switch(x){
case 12:
case 10:
case 8:
case 7:
case 5:
case 3:
case 1:p=31;break;
case 2:{if(y1%400==0||(y1!=100&&y1%4==0))  p=29;
        else p=28;break;}
case 4:
case 6:
case 9:{p=30;break;}
default:break;
    }
return p;
}






2 回复
#2
shl3052009-09-18 23:28
错误不少哦
main函数中x没定义
f1()中用到y1但y1没有传进来

ps:不是将函数声明在main中两个函数就可以共用数据的,再说,一般也没有在main中声明函数的
#3
莫云今次2009-09-19 00:14
你工程建错了,应该是.cpp,你用的应该是.c
1