C语言如何输入十个数,按从大到小顺序排列!

如题所述

用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:

#include<stdio.h>

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<stdio.h>

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-09-23

代码如图所示:

#include<stdio.h>

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 <stdio.h>

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;

}

参考资料:

本回答被网友采纳
第2个回答  推荐于2017-09-30

可以输入同时进行插入排序,提高效率。

代码如下:

#include <stdio.h>
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;
}

第3个回答  推荐于2017-09-24
#include<stdio.h>
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]<a[i+1]) /*相邻两个数比较*/
{
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");
}

已经上机运行过 就是用冒泡法啦
你应该知道怎么运行了吧 输入那十个数字 运行结果就出来了啦本回答被提问者采纳
第4个回答  2009-05-28
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]<s[j])
{
int temp=s[i];
s[i]=s[j];
s[j]=temp;
}
for(int x=0;x<10;x++)
printf("%d ",s[x]);

}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网