C语言调用函数问题

C语言调用函数中,例如:调用函数接收主函数的两个数时,头部必须定义两个变量吗?

    有两种情况,第一种:在大部分情况下都是要用到多少个参数就定义多少个.请看例子:

    #include <stdio.h>

    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;
    }

    第二种:不定参数这个有点复杂,还是建议你自行度娘了.这种情况,函数头定义参数个数可以比主函数实际调用时少.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-12
你意思用全局变量?
还有其他方法啊
你这个算一种
还有 返回值的方法
比如 
main中调用 
int fun(int a,int b)
{
    return a+b;
}
main()
{
    int a=1,b=2,c=0;
    c = fun(a,b);
    //此时输出c就是ab的计算结果3了
}

那么可以在main函数中用变量来接收这个计算结果

和指针操作的方法
void fun(int *a)
{
    *a = *a+1;
}
main()
{
    int a=1;
    fun(a);
    //此时a就是a+1的值了
}


都可以让子函数改变主函数里的变量而不用搞全局变量

追问

定义的函数add

图中 头部

int add(int ,int )

没有定义变量

追答

声明的时候可以只写类型,但是定义的时候必须要写形参

本回答被提问者和网友采纳
第2个回答  2018-03-12
不明白你想表达什么,但函数声明时的形式和调用时的形式必须一致。例如声明函数void foo(int, double),则调用foo时必须传递一个int型和一个double型作为实参。
第3个回答  2018-03-12
我没听懂,啥意思
相似回答