选择法排序(用选择法对10个整数从小到大排序。)请问下列代码那里有错?

#include<stdio.h>#include<string.h>intmain(){inta[1000];inttemp;inti;intk,n;k=0;n=0;s... #include<stdio.h>

#include<string.h>

int main()

{

int a[1000];

int temp;

int i;

int k,n;

k=0;

n=0;

scanf("%d ",&a);

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

{

if(a[i]>a[i+1])

{

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

}

}

printf("%d\n",a);

}
展开
 我来答
cdyzxy
2016-05-21 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3776万
展开全部
int main()

{ int a[10]; //既然是输入10个整数,数组开10个即可
int temp;
int i,j;
int k,n;
k=0;
n=10; //需要设置n=10,否则循环结束条件i<n-1就永远不成立了
for ( i=0;i<n;i++ ) scanf("%d",&a[i]); //输入10个数需要逐一输入,格式"%d"不能有空格
//所谓选择法,即每次选择当前范围内最小的数然后放到前面,需要两重循环
for ( i=0;i<n-1;i++ ) //第1重循环指定用i可以访问数组前面n-1个数,顺序访问
{ //然后在当前数之后的所有数中选择最小的记录下来,最后与当前i位置的数进行交换
for ( j=i+1,temp=i;j<n;j++ ) //循环令j可顺序访问当前i之后的数组元素
//循环开始temp假定i处元素最小

if ( a[j]<a[temp] ) temp=j; //如果当前j位置元素比temp记录位置的小,temp记录小的位置
k=a[i]; a[i]=a[temp]; a[temp]=k; //交换当前i位置的数成temp记录的i之后最小位置的数
}
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n"); //打印数组也需要用循环逐一打印
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式