当前位置: 代码迷 >> C语言 >> 救命啊.考试题,各位老兄,大姐救救小虾!
  详细解决方案

救命啊.考试题,各位老兄,大姐救救小虾!

热度:548   发布时间:2004-06-09 19:13:00.0
救命啊.考试题,各位老兄,大姐救救小虾!

求出a所指数组中最大和次最大数(规定最大数和次最大数不在a[0]和a[1]中),依次和a[0],和a[1]中的数对调

例如数组中原有的数为:7,10,12,0,3,6,9,11,5,8。

输出结果为:12,11,7,0,3,6,9,10,5,8

搜索更多相关的解决方案: 小虾  大姐  老兄  考试  救命  

----------------解决方案--------------------------------------------------------

int s[10],first,second,i;

first=2,second=1;

for(i=3;i<10;i++)

if(s[i]>s[first])first=i;

else if(s[i]>s[second])second=i;

i=s[0];s[0]=s[first];s[first]=i;

i=s[1];s[1]=s[second];s[second]=i;


----------------解决方案--------------------------------------------------------
谢谢,大哥,如果能和我解析一下就最好..麻烦了
----------------解决方案--------------------------------------------------------

int s[10],first,second,i;

first=2,second=1; //因为最大数不是第一个和第二个,所以我将最大数暂时指向第三个,第二大的要比第一大的小,所以指向第二。

for(i=3;i<10;i++)

if(s[i]>s[first])first=i; //如果后面的有比first还大的,就将first指向他

else if(s[i]>s[second])second=i; //如果你first小但是比second大,就暂时算第二大

i=s[0];s[0]=s[first];s[first]=i; //这里是交换数组元素

i=s[1];s[1]=s[second];s[second]=i;


----------------解决方案--------------------------------------------------------

老大,不行啊,再帮帮忙好?


----------------解决方案--------------------------------------------------------

怎么不行?

你把错误贴出来


----------------解决方案--------------------------------------------------------

改为

int s[10],first,second,i;

first=2,second=1;

for(i=3;i<10;i++)

{if(s[i]>s[first])

   {first=i;

    i=s[0];s[0]=s[first];s[first]=i;

    }

   else

    {

     if(s[i]>s[second])

      second=i;

      

      i=s[1];s[1]=s[second];s[second]=i;

     }

  


----------------解决方案--------------------------------------------------------
还是不行呢,老大,帮帮手啊,谢谢啦
----------------解决方案--------------------------------------------------------

#include <stdio.h> void main() { int s[10]={7,10,12,0,3,6,9,11,5,8},first,second,i;

first=2,second=1;

for(i=3;i<10;i++)

if(s[i]>s[first])first=i;

else if(s[i]>s[second])second=i;

i=s[0];s[0]=s[first];s[first]=i;

i=s[1];s[1]=s[second];s[second]=i; for(i=0;i<10;i++)printf("%d ",s[i]); }

VC6.0下编译通过,结果正确


----------------解决方案--------------------------------------------------------
  相关解决方案