yzhkpli 发表于 2024-9-29 11:42:56

菜鸟求问一个很初级的c程序问题

判断每个月有几天


#include "stdio.h"
/*
        Filename:how_much_days_in_a_month.c
*/

int leap_year(int year);
int get_days(int year);

void main(void){
        int year,month;
        year=2000;
        month=2;
        printf("In %d-%d,days amount:%d\n",year,month,get_days(year,month));
}

//判断是不是闰年
int leap_year(int year){
        int result=0;
       
        result=(year%400==0)||(year%100!=0 && year%4==0)?1:0;

        return result;
}
//返回指定年月的天数
int get_days(int year,int month){
        int days_mount=0;
        int is_leap_year=leap_year(year);
       
        switch(month){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                        days_mount=31;break;
                case 4:
                case 6:
                case 9:
                case 11:
                        days_mount=30;break;
                case 2:
                        days_mount=is_leap_year?29:28;
                        break;
                default:
                        //printf("You input is error!\n");break;
                        days_mount=3;break;
        }
        return days_mount;
}
报错
10        2        how_much_days_in_a_month.c        too many arguments to function 'get_days'


死活没看出来get_days函数怎么就多了参数了。

soma 发表于 2024-9-29 12:53:36

int get_days(int year,int month)这个是函数原型。和这个定义int get_days(int year);不一样。改一下吧。

wangxiangtan 发表于 2024-9-29 13:55:41

#include "stdio.h"
/*
      Filename:how_much_days_in_a_month.c
*/

int leap_year(int year);
int get_days(int year);定义的时候只有一个参数,

printf("In %d-%d,days amount:%d\n",year,month,get_days(year,month));调用的时候给他了两个参数,{:4_200:}

jwd 发表于 2024-9-29 14:15:06

这里不对

王昱顺 发表于 2024-9-29 14:19:57

调用的函数在当前函数下面,所以会往上找声明,声明不对就会报错

yzhkpli 发表于 2024-9-29 15:34:06

感谢大家指正。
看来上岁数后,老眼昏花,脑子不好使是真的。{:4_199:}{:4_167:}
页: [1]
查看完整版本: 菜鸟求问一个很初级的c程序问题