下面程序的功能是输出数组s中最大元素的下标,请填空。 main() { int k,p,s[]={1,-9,7,2,-10,3}; for(p=0,k=p;p<6;p++) if(s[p]>s[k])______ printf("%d\n",k);}

admin2010-12-10  40

问题 下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{  int k,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])______
printf("%d\n",k);}

选项 A、 k=p;

答案

解析  为寻找数组中最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查通常从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k]更大时,应该用p更新k,所以在空框处应填入代码“k=p;”。
转载请注明原文地址:https://kaotiyun.com/show/qXPp777K
0

相关试题推荐
最新回复(0)