标题:[求助]由小到大排序
只看楼主
zp_0409
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-6-4
 问题点数:0 回复次数:14 
[求助]由小到大排序

今天看到一个题:输入4个整数,要求按由小到大的顺序输出

如果用数组,那个循环很简单,如果不用哪?循环怎么写比较简单。
请指教。

搜索更多相关主题的帖子: 由小到大 
2007-07-18 19:05
Bonwe_PC
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-6-7
得分:0 
为什么问这种问题呢?

程序要求就是简单,明了嘛。

不用数组好像不是很好些哦~~

2007-07-18 19:33
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
得分:0 
不用数组就可以吗?用4个变量做吧,4个不算多呵~~~

2007-07-18 21:05
星星鱼虾蟹
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2007-6-2
得分:0 
要不用个结构模拟数组也行,如
struct n{
int x;/*元素值*/
struct n *p;/*指向下一个元素*/
}

2007-07-18 21:08
zhao9302
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-5-10
得分:0 

用四个变量当然可以啊,一个一个比较吧,也的确不多
假设你有100个变量 ,……


我要一步一步往上爬……
2007-07-18 22:18
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 

链表
输入 -1结束
#include"stdio.h"
#include<alloc.h>
struct fun{
int data;
struct fun *next;
}*h,*r,*s,*v;
void jiaohuan(int);
int changdu();
void paixu();
void print();
main()
{
int num,x;
h=(struct fun*)malloc(sizeof(struct fun));
r=h;
scanf("%d",&x);
while(x!=-1)
{
s=(struct fun*)malloc(sizeof(struct fun));
s->data=x;
r->next=s;
r=s;
scanf("%d",&x);
}
r->next=NULL;
paixu();
}
void paixu()
{
int i,k,q;
struct fun *p;
p=h->next;
q=changdu();
for(i=0;i<q;i++)
{
for(p=h->next;p->next!=NULL;)
{
k=p->data;
if(k>p->next->data)
{
jiaohuan(k);
}
else
p=p->next;
}

}

print();
}
void jiaohuan(int i)
{
struct fun *p,*u,*t;
p=h;
for(;p->next->data!=i;)
p=p->next;
t=p->next;
u=t->next;
t->next=u->next;
u->next=t;
p->next=u;

}
int changdu()
{ int i=0;
struct fun *p;
p=h;
for(;p->next!=NULL;)
{ i++;
p=p->next;
}
return i;
}
void print()
{
struct fun *p;
p=h;
for(;p->next!=NULL;)
{
p=p->next;
printf("%d\n",p->data);
}
}


羊肉串 葡萄干 哈密瓜!!
2007-07-18 23:06
zp_0409
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-6-4
得分:0 

谢谢各位指导
mp3aaa 真是高手亚,我得好好读一下你的程序。
一时看不懂亚。

2007-07-19 13:56
haihui282
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-7-19
得分:0 

#include<iostream>
#include<string>
using namespace std;

int main()
{
int a,b,c,d,e,f,temp=0;
int t[100];
cout << "please input the number of the data : ";
while(cin>>a)
{
for(f=0;f<100;f++)
t[f]=0;
for(b=0;b<a;b++)
cin >> t[b];
for(c=0;c<a;c++)
{
for(d=0;d<a-c;d++)
{
if(t[d]>t[d+1])
{
temp=t[d];
t[d]=t[d+1];
t[d+1]=temp;
}
}
}
cout << "the answer is : ";
for(e=1;e<=a;e++)
cout << t[e]<<" ";
cout << endl <<"pelase input the number of the next date : ";
}
return 0;
}

这个是我写的 你改成C语言就行 ,是用C++写的。 可以排列N个数

2007-07-19 15:14
hackerjiang
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:3
帖 子:780
专家分:111
注 册:2007-4-27
得分:0 

~~~~~~~~~~~~~~~~~~~~~~

我感觉差不多啊~~~~~~~~~~~~~~

写起来就很简单~~~~~~~~~~~

可能我搞错了什么


(づ ̄ 3 ̄)づ
2007-07-19 15:44
楚扬
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2007-7-15
得分:0 
main()
{ int a[4],i,j,t;
printf("Plese input for numbers:\n");
for(i=1;i<=4;i++)
scanf("%d",&a[i]);
for(i=1;i<4;i++)
for(j=3;j>i;j--)
if(a[j]<a[j-1])
{ t=a[j-1];a[j-1]=a[j];a[j]=t;}
for(i=1;i<=4;i++)
printf("a[%d]=%d ",i,a[i]);
}

2007-07-20 14:49



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




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

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