c语言return简答问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 10:26:42
以下是用递归函数求n个元素之和,我的问题是return 0;这一句有什么用,为何要返回一个0,主函数中的sum(a,sizeof(a)/sizeof(a[0])))要求有返回值?用return;不就可以了吗?
/* 求数组前n个元素之和 */
int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
main()
{
int i;
clrscr();
printf("\n The arry is:\n");
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
printf(" %d ",a[i]);
printf("\n SUM of the arry is: %d\n",sum(a,sizeof(a)/sizeof(a[0])));
printf("\n Press any key to quit...\n");
getch();
}
sum(int a[],int n)
{
if(n<=0)
return 0; /*这一句有什么用?*/
return a[n-1]+sum(a,n-1);
}

函数用return来返回执行的结果
printf("\n SUM of the arry is: %d\n",sum(a,sizeof(a)/sizeof(a[0]))); 这里说明函数sum()要返回一个整数。
sum(int a[],int n)
{
if(n<=0)
return 0; /*这一句有什么用?*/
return a[n-1]+sum(a,n-1);
}
这是一个条件判断,如果n,也就是数组中元素的个数小于等于0,就返回0,也就是执行结果为0;否则就返回a[n-1]+sum(a,n-1)这个值

要返回相应的类型(在这里是int型)呀,而return;返回的类型是void