用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:
#include
int main()
{
int i,j,a[10],t;
printf("输入数");
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < 10;j++)
if (a[i] < a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
printf("从大到小");
for (i = 0; i < 10; i++)
printf("%2d", a[i]);
return 0;
}
扩展资料:
代码还可以设计,如下:
#include
int main()
{
int a[10],i,j,t;//定义数组;
for(i=0;i<10;i++){
scanf("%d",&a[i]);//给数组赋值;
}
for(i=0;i<9;i++)//10个数,进行9轮比较;
for(j=0;j<10-i;j++){//第一个数比较9次,依次递减;
if(a[j]>a[j+1]) {//交换值;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++){
printf("%d\n",a[i]);//输出数组的值;
}
return 0;
}
}
printf("the sorted numbers:\n");
for(i=0;i<10;i++)
printf(" %d",a[i]);
printf("\n");
}
参考资料:百度百科-printf
代码如图所示:
#include
int main()
{
int i,j,a[10],t;
printf("请输入十个数:");
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < 10;j++) //循环
if (a[i] < a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
printf("从大到小排序后:");
for (i = 0; i < 10; i++)
printf("%2d", a[i]);
return 0;
}
扩展资料
C语言顺序排列题的其他解法
#include
int main()
{
int a[10];
int i,j;
int temp;
printf("请输入10个整数:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排列后顺序为:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
参考资料:百度百科-c语言
可以输入同时进行插入排序,提高效率。
代码如下:
#include
int main()
{
int a[10], i, j,t; //定义数组,及其它变量
for(i=0;i<10;i++)
{
scanf("%d",&t);//输入到临时变量t
for(j = i; j > 0; j --)//查找插入位置
{
if(a[j-1] >= t) break;
a[j] = a[j-1]; //移动元素,让出插入的空间
}
a[j] = t;//插入
}
for(i=0;i<10;i++) //输出
{
printf("%d,",a[i]);
}
printf("\n");
return 0;
}
#include
void main()
{
int a[10];
int i,j,t;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++) /*进行9次循环 实现9趟比较*/
for(i=0;i<9-j;i++) /*在每一趟中进行9-j次比较*/
if(a[i]{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("the sorted numbers:\n");
for(i=0;i<10;i++)
printf(" %d",a[i]);
printf("\n");
}
已经上机运行过 就是用冒泡法啦
你应该知道怎么运行了吧 输入那十个数字 运行结果就出来了啦
void main()
{//冒泡排序 把十个数从大到小输出
int s[10];
for(int m=0;m<10;++m)
{
printf("请输入第%d个数据:",m);
scanf("%d",&s[m]);
}
for(int i=0;i<10;++i)//依次吧十个数放在合适的位置上
for(int j=i+1;j<10;++j)//把一个数先放在合适的位置上
if(s[i]{
int temp=s[i];
s[i]=s[j];
s[j]=temp;
}
for(int x=0;x<10;x++)
printf("%d ",s[x]);
}