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

admin2009-02-15  33

问题 下面程序的功能是输出数组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/jvXp777K
0

随机试题
最新回复(0)