发布网友 发布时间:2022-04-22 01:13
共5个回答
热心网友 时间:2023-06-25 22:22
用选择排序法编写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
热心网友 时间:2023-06-25 22:22
代码如图所示:
#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语言
热心网友 时间:2023-06-25 22:23
可以输入同时进行插入排序,提高效率。
代码如下:
#include <stdio.h>热心网友 时间:2023-06-25 22:23
#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");
}
已经上机运行过 就是用冒泡法啦
你应该知道怎么运行了吧 输入那十个数字 运行结果就出来了啦
热心网友 时间:2023-06-25 22:24
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]);
}