Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用属于另一个函数的参数从main()调用函数_C - Fatal编程技术网

C 使用属于另一个函数的参数从main()调用函数

C 使用属于另一个函数的参数从main()调用函数,c,C,我试图从main()函数调用一个函数来计算工作日,但是,它告诉我3个参数中有2个未声明。这两个参数也是在另一个函数中找到的参数,我已经确定在这两个函数上都加了return,但它仍然给我错误。最后一个参数工作正常,因为它的变量声明也可以在main()函数中找到 到目前为止,我已经尝试在我的主要功能中执行类似的操作: int main (int argv, char **argc) { int day; int month; int year; day = get_integer(); mont

我试图从main()函数调用一个函数来计算工作日,但是,它告诉我3个参数中有2个未声明。这两个参数也是在另一个函数中找到的参数,我已经确定在这两个函数上都加了return,但它仍然给我错误。最后一个参数工作正常,因为它的变量声明也可以在main()函数中找到

到目前为止,我已经尝试在我的主要功能中执行类似的操作:

int main (int argv, char **argc) 
{
int day;
int month;
int year;

day = get_integer();
month = get_integer();
year = get_integer();

printf("Ordinal Day: %d\n", calculate_ordinal_day(day, month, year, 
leap_year(year)));
calculate_iso_week_day(ordinal_day, week_day, year);
calculate_weeks_in_year(year);
/* calculate_week(year); */
return 0;
}
但它给了我一个错误,我不认为这是一种方式,无论如何这样做

我希望参数来自以下两个函数:

int calculate_ordinal_day(int day, int month, int year, int isyearleap) {
int ordinal_day;

if (month == 1) {
    return day;
}
if (month == 2) {
    return day + 31;
}

ordinal_day = myFloor(30.6 * month - 91.4) + day;
if (isyearleap == 1) {
    return ordinal_day + 60;
}
return ordinal_day + 59;
}


int day_of_the_week(int year)
{
int week_day;
week_day = (1 + 5 * ((year - 1) % 4) + 4 * ((year - 1) % 100) + 6 * ((year - 
1) % 400) ) % 7;
if (week_day == 0) {
    week_day = 7;
}
printf("The day of the week is %d\n", week_day);
return week_day;
}
我尝试使用它的功能是:

int calculate_iso_week_day(int ordinal_day, int week_day, int year)
{
int iso_day_of_the_week;
iso_day_of_the_week = (ordinal_day + day_of_the_week(year)) % 7;
printf("ISO Weekday: %d\n", iso_day_of_the_week);
return iso_day_of_the_week;
}
另外,这个问题中的代码可能与其他问题非常相似。这不是重复,因为问题是关于完全不同的东西

calculate_iso_week_day(ordinal_day, week_day, year);
好的,让我们看看这些参数在哪里<代码>序数日在
计算序数日
中定义。它在
main
中不可见,这就是它抱怨的原因。您是否打算使用
计算第几天的结果?如果是,请更改此项:

printf("Ordinal Day: %d\n", calculate_ordinal_day(day, month, year, 
leap_year(year)));
calculate_iso_week_day(ordinal_day, week_day, year);
为此:

int ordinal_day = calculate_ordinal_day(day, month, year, leap_year(year));
printf("Ordinal Day: %d\n", ordinal_day);
calculate_iso_week_day(ordinal_day, week_day, year);
这与
周\日
类似
main
无法看到它。我会在您的
主页中推荐:

int week_day = day_of_the_week(year);

在分配
年份
和调用
计算iso周(周)日
之间的某个位置

您的主要功能在哪里?请发布完整的代码和完整的错误消息。但是从第一眼看,一本适合初学者的C语言书应该是你首先应该读的东西(函数声明中缺少类型)。我添加了主函数。
ordinal_日
weekday
不在
main
的范围内声明。因此,出现错误是正常的。请发布您收到的逐字记录错误消息。请阅读有关。您需要将示例最小化到仍然显示行为的最小值,并且示例需要完整。您必须提供错误消息,但您没有这样做。非常感谢,当我这样做时,它成功地编译了!答案并不完全是我想要的,但我想我可以从这里处理:)没问题,很高兴它工作了。我设法完全修复了它,答案现在是正确的等等,再次非常感谢!