一道程序填空题:以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中
intfun(int*s,intt,int*k){inti;<br/>*k=0;<br/>for(i=0;i<t;i++)<br/>if(s[*k]<s[i])*k=i;...
int fun(int*s,int t,int *k)
{int i; <br/>*k=0; <br/>for(i=0;i<t;i++) <br/>if(s[*k]<s[i])*k=i; <br/>return _______(这个地方答案是0,可是我填的是*k,如果是0的话那么返回的值不就都是0了吗? <br/>}
main()
{int a[10]={876,675,896,101,301,401,980,432,456,777},k;
clrscr();
fun(a,10,&k);
printf("%d",%d\n",k,a[k]);
} 展开
{int i; <br/>*k=0; <br/>for(i=0;i<t;i++) <br/>if(s[*k]<s[i])*k=i; <br/>return _______(这个地方答案是0,可是我填的是*k,如果是0的话那么返回的值不就都是0了吗? <br/>}
main()
{int a[10]={876,675,896,101,301,401,980,432,456,777},k;
clrscr();
fun(a,10,&k);
printf("%d",%d\n",k,a[k]);
} 展开
2个回答
2013-12-10
展开全部
是0,不是返回的都是0,而是就返回一次,最后都执行完成后返回0,*k最后存的就是最大的元素的下标.
这个函数按道理来说没有返回值也行(void).所以填"0"
这个函数按道理来说没有返回值也行(void).所以填"0"
2013-12-10
展开全部
我分析了一下,不应该返回*k,因为在for循环当中的if语句中,是用"<"来判断循环的,每次都是把最小的数给了*k,而到循环结束后,其实最大的数就是i=0的那个数,因此返回的是0,这只是我在纸上演算的,由于我电脑上的TC没了,就没去编译,你可以编译的去看下,我在建议你在做程序题的时候能多动动笔,或许画画就出来了呵呵……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询