用C语言编写,输入10个数按降序排列

如题所述

源程序代码如下:

#define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要

#include<stdio.h>//头文件;

int main()

{

int i = 0;

int j = 0;

double temp = 0;

double a[10] = { 0 };//定义三个变量和一个长度为10的数组;

printf("请输入十个数:\n");//显示“请输入十个数”

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

{

scanf("%lf", &a[i]);//从键盘上输入十个数送到数组; 

}

for (i = 1; i < 10; i++)//for循环,进行9次循环;

{

for (j = i - 1; j >= 0; j--)//for循环,在每次大的循环中,a[i]从a[1]依次与它前面的数比较;  

{

if (a[j + 1] > a[j])

{

temp = a[j + 1];

a[j + 1] = a[j];

a[j] = temp;//如果a[j + 1]>a[j],则把这两个数组元素互换,目的把最大的数放到前边;

}

else

{

break;

}

}

}

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

{

printf("% lf\n", a[i]);//输出排好顺序的十个数;

}

return 0;//返回值为0;

}

程序运行结果如下:


扩展资料:

其他实现方法如下:

#include<stdio.h>

int mysort(int *a, int n)

{

int i, j, temp;

for (i = 0; i < n - 1; i++)

{

for (j = 0; j < n - 1 - i; j++)

{

if (a[j] > a[j + 1])

{

temp = a[j + 1];

a[j + 1] = a[j];

a[j] = temp;

}

}

}

return 0;

}

int main()

{

int a[10];

int i, j;

printf("input 10 numbers:\n");

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

{

printf("the number%d is:", i + 1);

scanf("%d", a + i);

fflush(stdin);

}

mysort(a, 10);

for (i = 9; i >= 0; i--)

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

printf("\n");

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
#include "stdafx.h"
#include "stdio.h"

int main(int argc, char* argv[])
{
int a[10];
int i,j,d;
printf("请输入十个整数,用空格隔开:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
d=a[i];
a[i]=a[j];
a[j]=d;
}
}
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
用选择法。本回答被提问者采纳