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

 我来答
冰封月x
高粉答主

推荐于2019-10-06 · 关注我不会让你失望
知道答主
回答量:408
采纳率:100%
帮助的人:9.9万
展开全部

用选择排序法编写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

香料魔法
推荐于2019-09-23 · TA获得超过2.2万个赞
知道答主
回答量:218
采纳率:60%
帮助的人:21.3万
展开全部

代码如图所示:

#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;

}

参考资料:百度百科-c语言

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
推荐于2017-09-30 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450099
专业C/C++软件开发

向TA提问 私信TA
展开全部

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

代码如下:

#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e0ec3e7c1
推荐于2017-09-24 · TA获得超过548个赞
知道答主
回答量:824
采纳率:0%
帮助的人:0
展开全部
#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");
}

已经上机运行过 就是用冒泡法啦
你应该知道怎么运行了吧 输入那十个数字 运行结果就出来了啦
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
070271082
2009-05-28
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
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]);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式