C语言 求解

__Kyle 2011-06-18 10:36:47
输入10个数,找出其中最大数和次最大数,并把最大数和次最大数放在第一和第二的位置上,其余数据依次向后移动,输出调整后的结果
...全文
246 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wizard_tiger 2011-08-07
  • 打赏
  • 举报
回复
只要排序就可以了。
__Kyle 2011-08-05
  • 打赏
  • 举报
回复
谢谢大家啦。。。
sueary 2011-08-04
  • 打赏
  • 举报
回复
用冒泡法

#include<stdio.h>
void main()
{
int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]<a[j])
{ t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("\n");
printf("排列后的数组是:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
}
wintree 2011-08-03
  • 打赏
  • 举报
回复
冒泡,来个排序就好吧~~~~~~~
缺媳妇的郝 2011-08-03
  • 打赏
  • 举报
回复
1、输入数据放在数组n[]中,
2、定义结构体
struct Node
{
int num;/*序号*/
int value;/*值*/
}maxf,maxs;
3、遍历数组,找到最大和次最大的两个数,放入结构体中
4、其余数依次后移,把最大和次最大的两个数放到第一、二个位置上
5、输出
lykakaxi 2011-08-03
  • 打赏
  • 举报
回复
好吧,我表示应该仔细搞搞选择排序
zmkkobe 2011-07-29
  • 打赏
  • 举报
回复
两次冒泡就可以把你要求的数字排好
wxxxdwlt 2011-06-22
  • 打赏
  • 举报
回复
这不是C语言最先学的排序算法么,一共有8种。。。。起泡啊什么的。。。去看书吧。。。

最简单的起泡:你要把最大的放第一位,那就从最后一位开始,两两比较,如果后面的大一点,两者就交换位置,一直比到第一位,肯定就是最大的数了。再走一遍第二大的数就出来了。

这应该是最有效的办法了。其他的算法都是直接排出所有。对LZ来说可能浪费了。
actionwill 2011-06-21
  • 打赏
  • 举报
回复
这个派系就比较简单了吧 稍微下点功夫 自己编个吧 学过C的就行了
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fengchaokobe 的回复:]

(i = 0开始)先找出最大数,后移最大数以前的数,把最大数先放在第一的位置上。然后(i = 1开始)再找次大的数,找出之后放在第二的位置上。
[/Quote]

这样可能造成一些数据移动两遍。不如直接找出最大两个数,然后决定如何移动剩下的。
wujianfeng32 2011-06-20
  • 打赏
  • 举报
回复
记得好像是哥的入学第一课 O(∩_∩)O~
raiyle 2011-06-19
  • 打赏
  • 举报
回复
用排序
wizard_tiger 2011-06-19
  • 打赏
  • 举报
回复
冒泡排序就可以。
SuperFC 2011-06-18
  • 打赏
  • 举报
回复
(i = 0开始)先找出最大数,后移最大数以前的数,把最大数先放在第一的位置上。然后(i = 1开始)再找次大的数,找出之后放在第二的位置上。
KID_coder 2011-06-18
  • 打赏
  • 举报
回复
#include <stdio.h>

int main()
{
int a[] = {32, 3, 43, 54, 45, 4, 109};
int len = sizeof(a)/sizeof(int);
for ( int i=0; i<2; ++i ) //两次排序
{
int index = i;
for ( int j=index+1; j<len; ++j )
{
if ( a[index]<a[j] )
{
index = j;
}
}

if ( index != i )
{
int tmp = a[index]; //保存
//后移
int k = index;
while ( --k>=i )
a[k+1] = a[k];
//插到i位置
a[i] = tmp;
}
}
//打印
for ( i=0; i<len; ++i )
{
printf("%d ", a[i]);
}
return 0;
}
ryfdizuo 2011-06-18
  • 打赏
  • 举报
回复
两次冒泡即可~
gyjdk0601 2011-06-18
  • 打赏
  • 举报
回复
初学者飘过……
xuexiaodong2009 2011-06-18
  • 打赏
  • 举报
回复
简单的排序啊

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧