用c语言编程:键盘上输入N个整数,使该数组中的数按照从小到大的次序排列(选择法排序)
2个回答
展开全部
#include "stdio.h"
#define N 10
int main(int argc,char *argv[]){
int a[N],i,j,k;
printf("Please enter %d integer(s)...\n",N);
for(i=0;i<N;scanf("%d",a+i++));//输入
for(i=0;i<N;i++){//选择法排序
for(k=i,j=k+1;j<N;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
j=a[k],a[k]=a[i],a[i]=j;
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
代码图片和运行样例:
展开全部
#include <stdio.h>
main()
{
int a[10],i,j,t;
printf("Please input 10 numbers: ");/*输入源数据*/
for(i=0;i<10;i++)
scanf("%d",&a[i]); /*排序*/
for(j=0;j<9;j++) /*外循环控制排序趟数,n个数排n-1趟*/
for(i=0;i<9-j;i++) /*内循环每趟比较的次数,第j趟比较n-j次*/
if(a[i]>a[i+1])
/*相邻元素比较,逆序则交换*/
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}/*输出排序结果*/
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
main()
{
int a[10],i,j,t;
printf("Please input 10 numbers: ");/*输入源数据*/
for(i=0;i<10;i++)
scanf("%d",&a[i]); /*排序*/
for(j=0;j<9;j++) /*外循环控制排序趟数,n个数排n-1趟*/
for(i=0;i<9-j;i++) /*内循环每趟比较的次数,第j趟比较n-j次*/
if(a[i]>a[i+1])
/*相邻元素比较,逆序则交换*/
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}/*输出排序结果*/
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询