下面程序的功能是输出数组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])______

admin2010-09-05  26

问题 下面程序的功能是输出数组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);}

选项

答案k=p;

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

最新回复(0)