标题:各位高手,这道题目还是运行不了!~~再帮帮忙,好吗!
只看楼主
kazu110
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2004-6-9
 问题点数:0 回复次数:3 
各位高手,这道题目还是运行不了!~~再帮帮忙,好吗!
求出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

搜索更多相关主题的帖子: 题目 大数 运行 指数 
2004-06-10 13:25
kazu110
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2004-6-9
得分:0 

这是昨晚一位高手的分析:(大家再帮忙想想吧!谢谢了!)

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;

2004-06-10 13:29
kazu110
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2004-6-9
得分:0 
高手们!!!请帮忙想想吧!谢谢!谢谢!
2004-06-10 13:31
ppvae
Rank: 1
等 级:新手上路
帖 子:25
专家分:2
注 册:2014-1-18
得分:0 
#include<stdio.h>
int main(void)
{
   int a[10];
   int i;
   int max,second,temp1,temp2,t1,t2;
   printf("Enter number:");
   for(i=0;i<10;i++)
      scanf("%d",&a[i]);
   max=a[0];
   for(i=1;i<9;i++){
      if(a[i]>max){
         max=a[i];
         t1=i;
      }
   }

   second=a[2];
   for(i=3;i<9;i++){
      if(a[i]>second&&a[i]<max){
         second=a[i];
         t2=i;
      }
   }
   temp1=a[t1];
   a[t1]=a[0];
   a[0]=temp1;
   temp2=a[t2];
   a[t2]=a[1];
   a[1]=temp2;
   for(i=0;i<10;i++)


   printf("%d ",a[i]);
   getch();
   return 0;
}
2014-05-13 09:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-2290-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.491170 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved