C语言程序 用选择法对十个数排序

如题所述

#include <stdio.h>

int main()

{int i,j,min,temp,a[11];

printf("enter data:\n");

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

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

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

}

printf("\n");

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

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

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

printf("\n");

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

{min=i;

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

if (a[min]>a[j]) min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

printf("\nThe sorted numbers:\n");

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

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

printf("\n");

return 0;

}

扩展资料:

scanf()用法:int scanf(char*format,[argument,...]);

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘)读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。

其调用格式为:scanf(“&lt;格式化字符串&gt;”,&lt;地址表&gt;);

scanf()函数返回成功赋值的数据项数,出错时则返回EOF;

其控制串由三类字符构成:

1、格式化说明符

2、空白符

3、非空白符

格式化说明符

附加格式说明字符表:

空白字符

空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。

非空白字符

一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-21

/*question2:用选择法对10个整数排序*/

#include <stdio.h>

int main()

{

int a[11], i, j, temp;

printf("Enter data:\n");

for (i = 1; i < 11; i++)

{

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

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

}

printf("\n");

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

for (i = 1; i < 11; i++)

{

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

}

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

{

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

{

if (a[i] > a[j])

{

temp = a[i];     //书上此处用了中间变量min,但其实用不到

a[i] = a[j];

a[j] = temp;

}

}

}

printf("\nThe sorted numbers:\n");

for (i = 1; i < 11; i++)

{

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

}

printf("\n");

return 0;

}

第2个回答  2014-12-20

追答

我用手机运行过的哦!希望满意

追问

你这是冒泡法

追答

那爱莫能助咯

第3个回答  2020-12-03

本文我们主要讲解选择法排序,首先讲解了选择法排序的概念,然后结合具体的例子为大家讲解了如何使用选择法排序找到数组中的最大数,最后给大家留了两道题,分别是冒泡排序和选择法排序进行数组排序。

第4个回答  推荐于2017-05-23
从小到大的排序
#include<stdio.h>
void main(){
int n[10],min,i,j,t;
for(i=0;i<10;i++)
{
scanf("%d",&n[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<10-i;j++){
if(n[j]<n[min])min=j;
}
t=n[j-i];
n[j-i]=n[min];
n[min]=t;
}
for(i=0;i<10;i++) printf("%d",n[i]);
printf("\n");
}本回答被网友采纳