| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1056 人关注过本帖, 1 人收藏
标题:各位高手,这道题目还是运行不了!~~再帮帮忙,好吗!
只看楼主 加入收藏
kazu110
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2004-6-9
收藏(1)
 问题点数: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
快速回复:各位高手,这道题目还是运行不了!~~再帮帮忙,好吗!
数据加载中...
 
   



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

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