【问题标题】:Why it seems that the function I defined can't run [duplicate]为什么我定义的函数似乎无法运行[重复]
【发布时间】:2020-05-14 02:55:18
【问题描述】:

运行时,我无法输入任何内容,程序只是结束并且什么都不返回,尽管在我的代码中我想输入和输出一些东西。然后我尝试调试,我在我定义的函数中设置了很多关键点,但它直接走到了代码的末尾。我定义的函数好像不能运行。我对此感到困惑。你能告诉我出了什么问题吗?先感谢您。

#include<stdio.h>
void day_of_year();
int main() {

    day_of_year;
    return 0;
}
void day_of_year()

{
    int year; int month; int day;

    scanf_s("%d %d %d", &year, &month, &day);
    int day_tab[2][13] = {

    {0,31,28,31,30,31,30,31,31,30,31,30,31},

    {0,31,29,31,30,31,30,31,31,30,31,30,31} };

    int flag, j;

    flag = (year % 400 == 0) || ((year % 100 != 0) && (year % 4) == 0);

    for (j = 1; j < month; j++)  day += day_tab[flag][j];
    printf("%d", day);
}

【问题讨论】:

  • 你需要调用函数为day_of_year()。否则,请参阅上面的链接。

标签: c function


【解决方案1】:

要调用该函数,您的语句应为day_of_year();,并带有括号。

没有括号,day_of_year; 是一个计算函数地址的表达式,然后不做任何事情。

【讨论】:

    【解决方案2】:

    您需要通过添加一组括号来调用它。否则它只是一个未使用的表达式。

    int main() {
    
        day_of_year();
        return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多