南方气候适合种植西梅:初级编程

来源:百度文库 编辑:高校问答 时间:2024/04/29 22:36:17
比如说5个数字
12 45 89 41 23
怎么让他从大到小排列
C语言的

#include<stdio.h>

void sort(int *a)
{
int temp=0,i=0,sum=0,p=0,j=0;

for(i=0; i<5; i++)
{ p=i;
for(j=i+1;j<=4; j++)
{
if(a[p]<a[j])
{ p=j;
}
}

if(p!=i)
{
temp=a[p];
a[p]=a[i];
a[i]=temp;
}
}
}

void main()
{
int a[5]={12,45,89,41,23};
int i=0;
sort(a);
for(i=0;i<5;i++)
printf("%d ",a[i]);
}

可以使用冒泡排序法
源代码:
include <iosream.h>
void main()
{
int a[4],t,i,j;
//初始化阶段。随机从键盘输入五个数
for(i=0;i<=4;i++)
{
cout<<"请输入数据";
cin>>a[i];
}
for(i=1;i<=4;i++)
{
for(j=i+1;j<=4;j++)
{
if (a[i]<a[j])
{
t =a[i];
a[i]=a[j];
a[j]=t;
}
//上述程序完数列的排序
}
}
//显示结果
for(i=0;i<=4;i++)
cout<<a[i]<<" "
cout<<endl;
}

#include "stdio.h"
#include "conio.h"

main()
{int a[10];
int i,j,t;
printf("input 10 number:\n");
for (i=10;i>1;i--)
scanf ("%d",&a[i]);
printf("\n");
for(i=0;i<9;i++)
for (j=9;j>i;j--)
if (a[j]>a[j-1])
{t=a[j];a[j]=a[j-1];a[j-1]=t;}
printf("the sorted number:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
getch();
}
用我的方法在WIN-TC下运行一定能行哦,不信就去试一下了

main()
{int i,j,a[5]={12,45,89,41,23},k,temp;
clrscr();
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
{k=i;
if(a[j]<a[k])k=j;
{
if(k!=i)
{temp=a[i];a[i]=a[k];a[k]=temp;}
}
}
for(i=0;i<5;i++)
printf("% d",a[i]);
}


就是让它第1个和第2个比哪个大然后有大的就换位置依次比较 作个循环

推荐:上网搜索“快速排序”代码

好像C++中的stdlib.h里面有个函数Qsort(int*),具体用法不明……

排序是很基础的,泡沫排序最容易编,快速排序最快,不过代码长