C语言选择法排序任意输入十个数:(从大到小;从小到大)

如题所述

#include <stdio.h>
main(void)
{
int i,j,a[10],p=0,t=0,temp;

printf("请输入原数组:\n");
for(j=0;j<10;j++)
scanf("%d",&a[j]);
temp=a[0];

for(j=0;j<9;j++)
{
t=j;
temp=a[j];
for(i=j+1;i<10;i++)
if(temp>a[i]) //这是由小到大排序 如果是大到小则改为 if(temp<a[i])
{temp=a[i];p=i;}
{temp=a[p];a[p]=a[t];a[t]=temp;}
}

printf("排序后的数组为:\n");
for(j=0;j<10;j++)
printf("%d ",a[j]);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-24
#include "stdlib.h"
#include "stdio.h"

void select_sort(int data[],int start_index,int data_num)
{//start_index:数组开始的下标 data_num:数据的数目
int temp;
int min_index;//最小值索引

while(start_index<=data_num-1)
{
min_index = start_index;
for(int j=start_index; j<data_num; j++)
{
if(data[min_index]>data[j])
{
min_index = j;
}
}

temp = data[start_index];
data[start_index] = data[min_index];
data[min_index] = temp;

start_index++;
}

}

void main(void)
{
int a[10];

printf("输入10个数:");

for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}

select_sort(a,0,10);

printf("\n");

for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}

printf("\n");
}本回答被网友采纳
第2个回答  2013-07-24
用冒泡法。
#include <iostream.h>
void main()
{
int a[10],i,j;
j=i=0;
while(j<10) //输入数据
{
cin>>a[j];
j++;
}
j=0;
while(j<10) //
{
while(true)
{
if (a[i]<a[i+1])
{
t=a[i];
a[i]=[i+1];
a[i+1]=t;
}
i++;
if(a[i]=NULL)
break;
}
j++;
}
cout<<a[0]<<ends<<a[1]<<ends<<a[2]<<ends<<a[3]<<endl;
}
从大到小排列

C语言选择法排序任意输入十个数:(从大到小;从小到大)
main(void){ int i,j,a[10],p=0,t=0,temp;printf("请输入原数组:\\n");for(j=0;j<10;j++)scanf("%d",&a[j]);temp=a[0];for(j=0;j<9;j++){ t=j;temp=a[j];for(i=j+1;i<10;i++)if(temp>a[i]) \/\/这是由小到大排序 如果是大到小则改为 if(temp<a[i])...

...用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序...
} printf("从大到小");for (i = 0; i < 10; i++)printf("%2d", a[i]);return 0;}

C语言用选择法对10个整数按从大到小排序。10个整数用scanf函数...
\\x0d\\x0aa[i]=a[min]; \/\/a[i]里存放的最小数值\\x0d\\x0aa[min]=temp;} \\x0d\\x0aprintf("\\n从大到小排列是:\\n"); \/\/输出字符\\x0d\\x0afor(i=10;i>=1;i--) \/\/循环输出按大小排列的数据\\x0d\\x0aprintf("%5d",a[i]);\\x0d\\x0aprintf("\\n");\/\/每...

c语言如何用选择排序对10个整数排序
for (i=0;i<10;i++) \/\/在c语言中,数组的下标从0开始 printf("%5d",a[i]); \/\/输出这10个数 printf("\\n"); \/\/以下8行是对这10个数排序 for (i=0;i<10;i++){min=i;for(j=i+1;j<10;j++)if (a[min]>a[j]) min=j;temp=a[i]; \/\/以下3行将a[i+1]~a[10]中...

C语言:用选择法对数组中10个数按由大到小排序
int a[10],i;for(i=0;i<=9;i++){ cin>>a[i];} cout<<endl;cout<< select_sort(a,10); \/\/函数调用,数组名作实参 for(i=0;i<=9;i++) \/\/输出10个已经排好序的数 { cout<<a[i]<<" ";} cout<<endl;return 0;} void select_sort(int arry[],int n) \/\/...

C语言问题:从键盘输入十个整数,用选择排序法对输入的数据从小到大的顺序...
void SelectSort(int a[],int n){ int i,j,temp,min;for(i=0;i<n-1;i++){ min=i;for(j=i+1;j<n;j++)\/\/找到最小元素的位置 while(a[j]<a[min])min=j;if(min!=i){ temp=a[min];\/\/元素的交换 a[min]=a[i];a[i]=temp;} } } void main(){ int a[10],i;pr...

C语言:,用"选择法"对输入的10个字符按由大到小顺序排列
h> int main(void){ char a[11];int i,j;int max;int t;printf("请输入10个字符:\\n");gets(a);for(i = 0; i < 9; i++){ max = i;for(j = i+1; j < 10; j++)if(a[max] < a[j])max = j;t = a[max];a[max] = a[i];a[i] = t;} puts(a);} ...

c语言选择法排序10个数
c语言选择法10个数排序方法如下:电脑:联想拯救者y7000p 系统:windows1122454.1000 软件:CodeBlocks17.12 1、首先打开编辑软件,新建一个c程序空文件,引入标准库和主函数,定义一个QuickSort函数用来排序。2、这里用i和j两个变量分割数据,然后一部分的所有数据都比另外一部分的所有数据都要小,接...

c语言的两种排序?
1、选择排序法 要求输入10个整数,从大到小排序输出 输入:2 0 3 -4 8 9 5 1 7 6 输出:9 8 7 6 5 3 2 1 0 -4 代码:include<stdio.h> int main(int argc,const char*argv[]){ int num[10],i,j,k,l,temp;\/\/用一个数组保存输入的数据 for(i=0;i<=9;i++){ scanf(...

在c语言编程中如何将1-10的数从小到大排列。
冒泡法:顾名思义,就是把小的数据向前排,也就是向上浮起,并因此进行排序。例:include "stdio.h" 包含头文件 void main() 主函数 { int a[10],t,i,j; 定义要用的数据和数祖 printf("input the ten number:\\n"); 显示输出 for(i=0;i<10;i++)scanf("%d",&a[i]); 利用循环...

相似回答