
一个C语言初学者关于函数调用的简单问题
我所要问的函数如下main()第一行{第二行inta,b;第三行scanf("%d,%d",&a,&b);第四行max(a,b);第五行}第六行intmax(intx,i...
我所要问的函数如下
main() 第一行
{ 第二行
int a,b; 第三行
scanf("%d,%d",&a,&b); 第四行
max(a,b); 第五行
} 第六行
int max(int x,int y) 第七行 问题所在:在主函数中max
{ 第八行 不是返回值 ,而是只执行
int z; 第九行 max函数的操作,应该用
z=x>y?x:y; 第十行 void来声明max函数啊,但
printf("%d\n",z); 第十一行 在我操作时发现,如用
} 第十二行 void,那么这个程序便会
提示用一个错误,但如果用int
定义,则程序可运行,这是为什么
啊
小弟大一初学者,希望用会的,帮忙解决一下
我试过了,把第七行的int改成void再进行调试时是不正确的。。。 声明一下,在我用int定义max时,这个函数确实运行成功了。。。这是我不解的地方,我是这样认为的,难道如果在main中没有执行语句,那么函数中如有执行语句,则如函数定义错误,也会执行函数中的语句。。。 展开
main() 第一行
{ 第二行
int a,b; 第三行
scanf("%d,%d",&a,&b); 第四行
max(a,b); 第五行
} 第六行
int max(int x,int y) 第七行 问题所在:在主函数中max
{ 第八行 不是返回值 ,而是只执行
int z; 第九行 max函数的操作,应该用
z=x>y?x:y; 第十行 void来声明max函数啊,但
printf("%d\n",z); 第十一行 在我操作时发现,如用
} 第十二行 void,那么这个程序便会
提示用一个错误,但如果用int
定义,则程序可运行,这是为什么
啊
小弟大一初学者,希望用会的,帮忙解决一下
我试过了,把第七行的int改成void再进行调试时是不正确的。。。 声明一下,在我用int定义max时,这个函数确实运行成功了。。。这是我不解的地方,我是这样认为的,难道如果在main中没有执行语句,那么函数中如有执行语句,则如函数定义错误,也会执行函数中的语句。。。 展开
展开全部
你的max需要改成void
同时你需要在main前面对max进行申明
void max(int x ,int y)
把这个申明写在main前面,你才可以再主函数前调用
或者你把后面的max整体放在main前面,
如果你这两种方法都不想,那么用extern 吧。
同时你需要在main前面对max进行申明
void max(int x ,int y)
把这个申明写在main前面,你才可以再主函数前调用
或者你把后面的max整体放在main前面,
如果你这两种方法都不想,那么用extern 吧。
展开全部
不同编译器情况不同。用int定义,在我这根本连编译都通不过,因为没的返回值。用void还能通过。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void有错么?什么错误?本来就没有返回值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
相当于
1*2*3*。。。*n
如果你把1换成0,结果就是0,如果删去1,那么第一个数返回的值就是一个不确定的值,或者说是内存中的某一值,导致你的结果就是-的这个数
1*2*3*。。。*n
如果你把1换成0,结果就是0,如果删去1,那么第一个数返回的值就是一个不确定的值,或者说是内存中的某一值,导致你的结果就是-的这个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询