用选择法对10个整数从小到大排序

#includeintmain(){inti,j,n,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++... #includeint main(){ int i,j,n,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<n-1;i++) for(j=i;ja[j]) { n=a[i]; a[i]=a[j]; a[j]=a[i]; } for(i=0;i<10;i++) printf("%d\n",a[i]); return 0;}哪错了??不排序。。 展开
 我来答
百度网友c64166b
高粉答主

2018-10-29 · 关注我不会让你失望
知道小有建树答主
回答量:447
采纳率:100%
帮助的人:13.3万
展开全部

用选择法对10个整数排序,用scanf输入。你用下面这种输入方法就可以了。

# include<stdio.h>

int main()

{

int i,j,min,temp,a[10];

printf("enter data:\n");

for (i=0;i<10;i++)

{

printf("please enter ten numbers:\n");

scanf("%d",&a[i]); //输入10个数

}

printf("\n");

printf("The orginal numbers:\n");

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]中最小值与a[i]对换

a[i]=a[min];

a[min]=temp;

}

printf("\n The sorted numbers:\n"); //输出已排好序的10个数

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

return 0;

}

扩展资料:

选择法排序基本思想:

每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序

简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。

以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列:

初始序列:{49 27 65 97 76 12 38}

第1趟:12与49交换:12{27 65 97 76 49 38}

第2趟:27不动 :12 27{65 97 76 49 38}

第3趟:65与38交换:12 27 38{97 76 49 65}

第4趟:97与49交换:12 27 38 49{76 97 65}

第5趟:76与65交换:12 27 38 49 65{97 76}

第6趟:97与76交换:12 27 38 49 65 76 97 完成

参考资料:

百度百科- 用选择法对10个整数排序

木澂
高粉答主

2018-10-20 · 繁杂信息太多,你要学会辨别
知道答主
回答量:46
采纳率:100%
帮助的人:1.2万
展开全部

错误处粗体标注如下:

#include//应为#include<stdio.h>

int main()

{

int i,j,n,a[10];//还需定义 int t;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

//  n = 10, 既然下面用了i<n-1,应该定义n的值

for(i=0;i<n-1;i++)

for(j=i;ja[j])//应该为  for(j = i + 1;  j<n ; j ++)   if( a[i]>a[j])

{ n=a[i]; a[i]=a[j]; a[j]=a[i]; }//应该为{ t=a[i]; a[i]=a[j]; a[j]=t; }

for(i=0;i<10;i++)

printf("%d\n",a[i]);

return 0;

}

扩展资料:

选择排序法

选择排序法 是对 定位比较交换法(冒泡排序法) 的一种改进。

选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。

简单选择排序的基本思想:第1趟,在待排序记录中选出最小的记录,将它与数组第2个数交换;第2趟,在待排序记录(即数组的其他数字)中选出最小的记录,将它与数组第3个数字交换;

以此类推,第i趟在待排序记录中选出最小的记录,将它与数组第i+1个数字交换,使有序序列不断增长直到全部排序完毕。

参考资料:百度百科-选择排序法

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2013-11-27 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.8亿
展开全部

#include<stdio.h>

int main()

{

 int i,j,n,t,a[10];

 for(i=0;i<10;i++)

   scanf("%d",&a[i]);

 for(i=0;i<9;i++)

 {

   n=i;

   for(j=i+1;j<10;j++)

     if(a[j]<a[n])n=j;

   t=a[n]; a[n]=a[i]; a[i]=t;

 }

 for(i=0;i<10;i++)

   printf("%d\n",a[i]);

 return 0;

}

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2020-09-19 · TA获得超过3.4万个赞
知道答主
回答量:208
采纳率:0%
帮助的人:6.5万
展开全部

选择法排序是一种简单的容易实现的对数据排序的算法。以整形数组元素为例,有数组A[10],即A[0],A[1],…,A[8],A[9](假设其元素均互不相同)。要求对其元素排序使之递增有序。

首先以一个元素为基准,从一个方向开始扫描,比如从左至右扫描,以A[0]为基准。
接下来从A[0],…,A[9]中找出最小的元素,将其与A[0]交换。



然后将基准位置右移一位,重复上面的动作,比如,以A[1]为基准,找出A[1]~A[9]中最小的,将其与A[1]交换。



一直进行到基准位置移到数组最后一个元素时排序结束(此时基准左边所有元素均递增有序,而基准为最后一个元素,故完成排序)。


main()
int array[10]; 

//给数组初始化!

int i,j,k,temp; 

for(i=0;i<10-1;i++) {

k=i; 

for(j=i+1;j<10;j++)

if (array[j]<array[k]) k="j" ;="" temp="array[k];array[k]=array;array=temp;" }="" }

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2022-05-27 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部

选择法排序,是最容易理解的。

写出程序,也是最简单的。

如下即是:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式