void main()
{
float a,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
printf("%f,%f,%f",a,b,c);
}
这是比较3个数的大小,从小到大输出.那么输入n个数,从小到大依次排列呢?
20 个解决方案
#1
自己想想看!~
#2
想一个排序算法,具体怎么排序????
然后想怎么存放……
然后想怎么存放……
#4
排序方法很多啊,最简单的冒泡,选择排序
效率较高的堆栈,归并等等
效率较高的堆栈,归并等等
#5
如果你会用循环语句的话,用循环尝试一下…… 刚学的时候就要多想多动手……
#6
先输入,然后排序就可以,用什么排序方法自己可以选择,比如直接,插入,归并,快速,堆.....
#7
输入N个的无非是多了几次比较
#8
给你一个冒泡排序例子,效率不高,但容易理解,建议你多看看其他算法的思想 google baidu 都可以
#include<stdio.h>
#define N 10
int main(void)
{
int a[N];
int i, j, t;
printf("input %d numbers:\n",N);
for (i=0; i<N; i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0; j< N-1; j++)
for(i=0; i<N-1-j; i++)
if (a[i] > a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
printf("the sorted numbers:\n");
for(i=0; i<N; i++)
printf("%d\t",a[i]);
printf("\n");
return 0;
}
#9
void swap (int *a,int *b)//交换
{
int*temp;
temp=a;
a=b;
b=temp;
}
void compare(int a ,int b)//当a〈b时交换a,b的位置
{
if(a<=b)
swap(&a,&b);
}
int* changList(int Array[],int Length)//数组的排序由大到小
{
for(int j=0,j<Lenth;j++)
for(int i=0,i<Lenth;i++)
{
compare(Array[i],Array[i+1]);
}
return Array;
}
void main()
{
int ArrayLenth=0;//初始输入
int Icr=0;
int a[];
cin>>ArrayLenth;//输入数组长度
while(ArrayLenth--)
{
Icr++;
cin>>a[Icr];//数组初始话
}
int OutArray=changList(a,ArrayLenth);
while(ArrayLenth--)
cout<<OutArray[ArrayLenth];
}
{
int*temp;
temp=a;
a=b;
b=temp;
}
void compare(int a ,int b)//当a〈b时交换a,b的位置
{
if(a<=b)
swap(&a,&b);
}
int* changList(int Array[],int Length)//数组的排序由大到小
{
for(int j=0,j<Lenth;j++)
for(int i=0,i<Lenth;i++)
{
compare(Array[i],Array[i+1]);
}
return Array;
}
void main()
{
int ArrayLenth=0;//初始输入
int Icr=0;
int a[];
cin>>ArrayLenth;//输入数组长度
while(ArrayLenth--)
{
Icr++;
cin>>a[Icr];//数组初始话
}
int OutArray=changList(a,ArrayLenth);
while(ArrayLenth--)
cout<<OutArray[ArrayLenth];
}
#10
错咧成c++了
#11
冒泡排序,选择排序等都可以
LZ搜一下相关算法
LZ搜一下相关算法
#12
使用循环啊,排序方法太多了,基本上书上都有现成的例子。
#13
应用到数组会好些的吧,申请一个足够大的数组,存储数据在排列 ,会很简单的
#14
我送楼主一个快速排序的算法吧!!(效率最高,重点考题!但是要下功夫捉摸哟)
#include <iostream.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int Partition ( int * list , int low ,int high ) //split the list to two part
{
int temp = list[low]; // let the number in low as pivotkey
int pivotkey = list[low] ;
while ( low < high )
{
while(low<high && list[high] >= pivotkey )
high -- ;
list[low] = list[high] ;
while (low<high && list[low] <= pivotkey )
low ++ ;
list[high] = list[low] ;
}
list[low] = temp ;
return low ;
}
void QuickSort ( int *list , int low , int high ) //qiuck sort
{
if ( low < high )
{
int pivotloc = Partition ( list, low, high );
QuickSort ( list , pivotloc+1 ,high);
QuickSort ( list , low ,pivotloc-1) ;
}
}
int main()
{
int a[10];
srand( (unsigned)time( NULL ) );
for(int i = 0;i < 10;i++)
{
a[i] = rand()%10;
cout <<i <<" = " <<a[i] <<endl;
}
QuickSort(a,0,9);
cout <<"after sorted:" <<endl;
for( i = 0;i < 10;i++)
{
cout <<"a[" <<i <<"] = " <<a[i] <<endl;
}
}
#15
//效率不高
#include <stdio.h>
void sort(int *a, int n)
{
int i, j, t, k;
for(i=0; i<n-1; i++)
{
t=a[i];
k=i;
for(j=i+1; j<n; j++)
{
if(a[j]<t)
{
t=a[j];
k=j;
}
}
a[k]=a[i];
a[i]=t;
}
}
int main(void)
{
int a[100];
int i,n;
for(i=0, n=0;;i++, n++)
{
printf("Please input the %d one numbers:\n", i);
if(scanf("%d",&a[i])!=1) /* 输入非数字就退出 */
break;
}
sort(a, n);
for(i=0; i<n; i++)
{
printf("%d ", a[i]);
}
getch();
return 0;
}
#16
楼主如果按那样的想下去,那就惨了
收藏了
收藏了
#17
用个排序算法
#18
最基础的数据结构:数组,可以帮上忙了。
#19
选择法排序
#20
冒泡排序
#21
#1
自己想想看!~
#2
想一个排序算法,具体怎么排序????
然后想怎么存放……
然后想怎么存放……
#3
#4
排序方法很多啊,最简单的冒泡,选择排序
效率较高的堆栈,归并等等
效率较高的堆栈,归并等等
#5
如果你会用循环语句的话,用循环尝试一下…… 刚学的时候就要多想多动手……
#6
先输入,然后排序就可以,用什么排序方法自己可以选择,比如直接,插入,归并,快速,堆.....
#7
输入N个的无非是多了几次比较
#8
给你一个冒泡排序例子,效率不高,但容易理解,建议你多看看其他算法的思想 google baidu 都可以
#include<stdio.h>
#define N 10
int main(void)
{
int a[N];
int i, j, t;
printf("input %d numbers:\n",N);
for (i=0; i<N; i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0; j< N-1; j++)
for(i=0; i<N-1-j; i++)
if (a[i] > a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
printf("the sorted numbers:\n");
for(i=0; i<N; i++)
printf("%d\t",a[i]);
printf("\n");
return 0;
}
#9
void swap (int *a,int *b)//交换
{
int*temp;
temp=a;
a=b;
b=temp;
}
void compare(int a ,int b)//当a〈b时交换a,b的位置
{
if(a<=b)
swap(&a,&b);
}
int* changList(int Array[],int Length)//数组的排序由大到小
{
for(int j=0,j<Lenth;j++)
for(int i=0,i<Lenth;i++)
{
compare(Array[i],Array[i+1]);
}
return Array;
}
void main()
{
int ArrayLenth=0;//初始输入
int Icr=0;
int a[];
cin>>ArrayLenth;//输入数组长度
while(ArrayLenth--)
{
Icr++;
cin>>a[Icr];//数组初始话
}
int OutArray=changList(a,ArrayLenth);
while(ArrayLenth--)
cout<<OutArray[ArrayLenth];
}
{
int*temp;
temp=a;
a=b;
b=temp;
}
void compare(int a ,int b)//当a〈b时交换a,b的位置
{
if(a<=b)
swap(&a,&b);
}
int* changList(int Array[],int Length)//数组的排序由大到小
{
for(int j=0,j<Lenth;j++)
for(int i=0,i<Lenth;i++)
{
compare(Array[i],Array[i+1]);
}
return Array;
}
void main()
{
int ArrayLenth=0;//初始输入
int Icr=0;
int a[];
cin>>ArrayLenth;//输入数组长度
while(ArrayLenth--)
{
Icr++;
cin>>a[Icr];//数组初始话
}
int OutArray=changList(a,ArrayLenth);
while(ArrayLenth--)
cout<<OutArray[ArrayLenth];
}
#10
错咧成c++了
#11
冒泡排序,选择排序等都可以
LZ搜一下相关算法
LZ搜一下相关算法
#12
使用循环啊,排序方法太多了,基本上书上都有现成的例子。
#13
应用到数组会好些的吧,申请一个足够大的数组,存储数据在排列 ,会很简单的
#14
我送楼主一个快速排序的算法吧!!(效率最高,重点考题!但是要下功夫捉摸哟)
#include <iostream.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int Partition ( int * list , int low ,int high ) //split the list to two part
{
int temp = list[low]; // let the number in low as pivotkey
int pivotkey = list[low] ;
while ( low < high )
{
while(low<high && list[high] >= pivotkey )
high -- ;
list[low] = list[high] ;
while (low<high && list[low] <= pivotkey )
low ++ ;
list[high] = list[low] ;
}
list[low] = temp ;
return low ;
}
void QuickSort ( int *list , int low , int high ) //qiuck sort
{
if ( low < high )
{
int pivotloc = Partition ( list, low, high );
QuickSort ( list , pivotloc+1 ,high);
QuickSort ( list , low ,pivotloc-1) ;
}
}
int main()
{
int a[10];
srand( (unsigned)time( NULL ) );
for(int i = 0;i < 10;i++)
{
a[i] = rand()%10;
cout <<i <<" = " <<a[i] <<endl;
}
QuickSort(a,0,9);
cout <<"after sorted:" <<endl;
for( i = 0;i < 10;i++)
{
cout <<"a[" <<i <<"] = " <<a[i] <<endl;
}
}
#15
//效率不高
#include <stdio.h>
void sort(int *a, int n)
{
int i, j, t, k;
for(i=0; i<n-1; i++)
{
t=a[i];
k=i;
for(j=i+1; j<n; j++)
{
if(a[j]<t)
{
t=a[j];
k=j;
}
}
a[k]=a[i];
a[i]=t;
}
}
int main(void)
{
int a[100];
int i,n;
for(i=0, n=0;;i++, n++)
{
printf("Please input the %d one numbers:\n", i);
if(scanf("%d",&a[i])!=1) /* 输入非数字就退出 */
break;
}
sort(a, n);
for(i=0; i<n; i++)
{
printf("%d ", a[i]);
}
getch();
return 0;
}
#16
楼主如果按那样的想下去,那就惨了
收藏了
收藏了
#17
用个排序算法
#18
最基础的数据结构:数组,可以帮上忙了。
#19
选择法排序
#20
冒泡排序