void weekdays(int y,int m, int d)//根据日期利用基姆拉尔森公式判定是星期几 //看参数:一共三个,主程序中调用时,也必须用三个参数 { int iWeek; if(m==1||m==2) { m+=12; y--; } iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;//基姆拉尔森公式 switch(iWeek)//判定星期几 { case 0: printf("星期一\n"); break; case 1: printf("星期二\n"); break; case 2: printf("星期三\n"); break; case 3: printf("星期四\n"); break; case 4: printf("星期五\n"); break; case 5: printf("星期六\n"); break; case 6: printf("星期日\n"); break; } } int main() { int year=0,month=0,day=13; printf("请输入日期:\n格式为:1900,1,1\n"); scanf("%d%d%d",&year,&month,&day);//输入年,月,日 weekdays(year,month,day); //运算 return 0; }第二种:不定参数这个有点复杂,还是建议你自行度娘了.这种情况,函数头定义参数个数可以比主函数实际调用时少.